3687 - 复杂博弈
时间限制 : 1 秒
内存限制 : 128 MB
天,我真是受够了!我的弟弟,你不知道我是谁?我就是简单博弈那个小学生A的哥哥大学生!我的弟弟又跟他
的朋友小学生B在玩游戏
你问我为什么想知道简单博弈我的弟弟能不能赢?因为我弟弟输了我得帮忙堵校门口啊! 这不,这次我又得知道
我弟弟能不能赢了。
他们这次玩的比较高级,有n个位置,每个位置放置ai 个石头,一次操作只能从1堆中取,每次取走至少1个,
去过后可以把取走的石头
任意分配到其它位置(石头数不为0),如果谁不能进行这个操作了,那他就输了。还是我弟弟先手。
1<=n<=10
1<=ai<=100
题目输入
第一行输入n
第二行输入ai
题目输出
如果能赢,输出1,否则输出0
输入/输出样例
输入格式
3 2 1 3 2 1 1
输出格式
1 0
C语言解答
#include<stdio.h> int main() { int x,b,i; while(scanf("%d",&x)==1) { for(i=1;i<=x;i++) scanf("%d",&b); if(x%2==1)printf("1\n"); else printf("0\n"); } return 0; }
C++解答
#include<stdio.h> #include<string.h> int main () { int n,num[120],x,flag; int i,j,k; while (scanf("%d",&n)!=EOF) { if(n==0) break; memset(num,0,sizeof(num)); for (i=0;i<n;++i) { scanf("%d",&x); num[x]++; } flag=0; for (i=1;i<101;++i) { if (num[i]&1) { flag=1; break; } } printf("%d\n",flag); } return 0; }