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;
}
浙公网安备 33010602011771号