记录编号 |
359401 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[CQOI2013]新Nim游戏 |
最终得分 |
100 |
用户昵称 |
sxysxy |
是否通过 |
通过 |
代码语言 |
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;
}