作者:
Protein
,
2021-02-16 16:58:54
,
阅读 9
#include <iostream>
#define int long long
using namespace std;
typedef long long LL;
const int N = 100010;
int n, a[N];
signed main() {
scanf("%d", &n);
for (int i = 0; i < n; i++) scanf("%lld", &a[i]);
int k = 0;
for (int i = 62; i >= 0; i--) {
for (int j = k; j < n; j++)
if (a[j] >> i & 1) {
swap(a[j], a[k]);
break;
}
if (!(a[k] >> i & 1)) continue;
for (int j = 0; j < n; j++)
if (j != k && (a[j] >> i & 1))
a[j] ^= a[k];
k++;
if (k == n) break;
}
int res = 0;
for (int i = 0; i < k; i++) res ^= a[i];
printf("%lld\n", res);
return 0;
}