比赛 收心赛 评测结果 AAAAAAAAEEEEAAAAEEEE
题目名称 异或粽子 最终得分 60
用户昵称 终焉折枝 运行时间 2.525 s
代码语言 C++ 内存使用 9.01 MiB
提交时间 2026-02-24 12:03:53
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;

const int MAXN = 5e5 + 5;
typedef long long ll;
ll s[MAXN];
ll ans[MAXN];

int main() {
	freopen("xor.in","r",stdin);
	freopen("xor.out","w",stdout);
	int n, k;
	scanf("%d %d",&n, &k);
	for(int i = 1; i <= n; i ++) {
		scanf("%lld", &s[i]);
		s[i] ^= s[i - 1];
	}
	int cnt=0;
	for(int i = 1; i <= n; i ++)
		for(int j = 0; j < i; j ++)
			ans[++ cnt] = s[i] ^ s[j];
	sort(ans + 1,ans + cnt + 1);
	ll res = 0;
	for(int i = 1; i <= k; i ++)
		res += ans[cnt - i + 1];
	printf("%lld\n", res);
	return 0;
}