2015年2月2日 星期一

2015/02/02 ACM-ICPC Live Archive 5059 - Playing With Stones

/* https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3060 */
/*
    一次最多拿一半的 Nim 
*/ 
#include <iostream>
#include <cstdio>

using namespace std;

typedef long long ll;

ll ask(ll x)
{
    if( x == 1 ) return 0;

    if( x%2 == 0 ) return x/2;
    else return ask(x/2);
}

int T, N;

int main()
{
    scanf("%d", &T);

    while( T-- )
    {
        ll Ans = 0;

        scanf("%d", &N);

        for(int Ni = 0; Ni < N; Ni++)
        {
            ll x;
            scanf("%lld", &x);

            Ans ^= ask(x);
        }

        if( Ans ) puts("YES");
        else puts("NO");
    }
}

沒有留言:

張貼留言