結果

問題 No.524 コインゲーム
ユーザー tsutaj
提出日時 2017-06-02 23:23:15
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 2 ms / 1,000 ms
コード長 2,450 bytes
コンパイル時間 1,262 ms
コンパイル使用メモリ 113,092 KB
実行使用メモリ 5,248 KB
最終ジャッジ日時 2024-10-02 10:24:46
合計ジャッジ時間 2,239 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 32
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#include <iostream>
#include <iomanip>
#include <cstdio>
#include <string>
#include <cstring>
#include <deque>
#include <list>
#include <queue>
#include <stack>
#include <vector>
#include <utility>
#include <algorithm>
#include <map>
#include <set>
#include <complex>
#include <cmath>
#include <limits>
#include <cfloat>
#include <climits>
#include <ctime>
#include <cassert>
#include <numeric>
#include <functional>
using namespace std;
#define rep(i,a,n) for(int (i)=(a); (i)<(n); (i)++)
#define repq(i,a,n) for(int (i)=(a); (i)<=(n); (i)++)
#define repr(i,a,n) for(int (i)=(a); (i)>=(n); (i)--)
#define int long long int
template<typename T> void chmax(T &a, T b) {a = max(a, b);}
template<typename T> void chmin(T &a, T b) {a = min(a, b);}
template<typename T> void chadd(T &a, T b) {a = a + b;}
typedef pair<int, int> pii;
typedef long long ll;
int dx[] = {0, 0, 1, -1};
int dy[] = {1, -1, 0, 0};
constexpr ll INF = 1001001001001001LL;
constexpr ll MOD = 1000000007LL;
int N;
int const SIZE =15;
map<vector<int>, bool> m;
void showvector(vector<int> &v) {
printf("vector: ");
rep(i,0,SIZE) {
if(v[i] != INF) printf("%lld ", v[i]);
else printf("INF ");
}
cout << endl;
}
bool experiment(vector<int> v) {
if(m.count(v)) return m[v];
// showvector(v);
rep(i,0,SIZE) {
if(v[i] == INF) continue;
repq(j,1,v[i]) {
vector<int> temp = v;
if(temp[i] != j) temp[i] -= j;
else temp[i] = INF;
sort(temp.begin(), temp.end());
if(!experiment(temp)) {
m[v] = true;
return m[v];
}
}
}
m[v] = false;
return m[v];
}
signed main() {
/*
vector<int> init(SIZE, 0);
rep(i,0,2) {
init[i] = i+1;
m[init] = true;
}
rep(i,1,SIZE) {
vector<int> v(SIZE, INF);
rep(j,0,i) v[j] = j+1;
printf("debug: N = %lld\n", i);
bool ans = experiment(v);
printf("result: ");
cout << (ans ? "O" : "X") << endl;
}
*/
/*int k = 1;
while(1) {
int val = (k+2) * (k+3) / 2 - 3;
printf("k = %lld, val = %lld\n", k, val);
if(val == N) {
cout << "X" << endl;
return 0;
}
if(val > N) break;
k++;
}
cout << "O" << endl;
*/
cin >> N;
if(N%4 == 3) cout << "X" << endl;
else cout << "O" << endl;
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0