走棋子相当于n个石子堆,每次取石子,如果nim和为0,那么证明任意一个二进制位是1的个数均为偶数,每次从一堆里取石子,必定能从另一堆找到相同的方式取,所以先手必输.
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#define MAX 1007
using namespace std;
int a,n;
int main ( )
{
while ( ~scanf ( "%d" , &n ) , n )
{
int ans = 0;
for ( int i = 1 ; i <= n ; i++ )
{
scanf ( "%d" , &a );
ans ^= a;
}
if ( ans ) puts ( "Rabbit Win!" );
else puts ( "Grass Win!" );
}
}