记录编号 359401 评测结果 AAAAAAAAAA
题目名称 [CQOI2013]新Nim游戏 最终得分 100
用户昵称 Gravatarsxysxy 是否通过 通过
代码语言 C++ 运行时间 0.003 s
提交时间 2016-12-22 16:10:07 内存使用 0.32 MiB
显示代码纯文本
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <iostream>
using namespace std;
int w[33] = {1};
int p[111];
int a[111];
long long ans, sum;
int main()
{
    freopen("newnim.in", "r", stdin);
    freopen("newnim.out", "w", stdout);
    int n;cin >> n;
    for(int i = 1; i < 32; i++)w[i] = w[i-1]<<1;
    for(int i = 1; i <= n; i++)cin >> a[i], sum += a[i];
    sort(a+1, a+1+n, greater<int>());
    for(int i = 1; i <= n; i++)
    {
        int x = a[i];
        for(int j = 31; ~j; j--)
        {
            if(a[i] & w[j])
            {
                if(!p[j])
                {
                    p[j] = i;
                    break;
                }else a[i]^=a[p[j]];
            }
        }
        if(a[i])ans += x;
    }
    if(ans)printf("%lld\n", sum-ans);
    else puts("-1");
    return 0;
}