3687 - 复杂博弈

通过次数

0

提交次数

0

时间限制 : 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;
}