PKU2975

/*
Nim游戏,首先求出sg异或和的值。
如果是胜,判断每堆石块通过变化个数能够达到败态。计数就可以了
*/

#include <cstdio>
int N,A[1010],ans;
int main()
{
	while(scanf("%d",&N)==1)
	{
		if(!N) break;
		ans = 0;
		for(int i=0;i<N;i++)
		{
			scanf("%d",&A[i]);ans^=A[i];
		}
		int cnt=0;
		if(ans) for(int i=0;i<N;i++)
		{
			if( A[i]>= (ans^A[i])) cnt++;
		}
		printf("%d\n",cnt);
	}
	return 0;
}
posted @ 2011-06-16 01:22  AC2012  阅读(135)  评论(0编辑  收藏  举报