이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <stdio.h>
int N; int range[1<<16]; bool win[1<<16];
int main()
{
scanf ("%d",&N);
for (int i=1;i<(1<<N);i++){
int r = i, x = i & (-i), l;
while (r){
l = r & (-r);
r -= l;
}
range[i] = l * 2 - i;
}
for (int i=(1<<N)-2;i>=0;i--){
int rem = (1<<N) - 1 - i;
for (int j=rem;j;j=(j-1)&rem){
if (range[j] & i) continue;
if (!win[i+j]){win[i] = 1; break;}
}
}
int ans = 0;
for (int i=0;i<(1<<N);i++) if (!win[i]) ans++;
printf ("%d\n",ans);
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |