为什么用没注释过的代码可以过,但用注释的那行代码就过不了。
#include <bits/stdc++.h>
using namespace std;
mt19937_64 rnd(chrono::steady_clock::now().time_since_epoch().count());
using ll = long long;
using ld = long double;
const ll N = 60;
ll n, c, k, p[N], ans = 0;
bool cmp(ll a, ll b) { return a > b; }
void add(ll a)
{
for (int i = 1; i <= k; i ++ ) a = min(a, a ^ p[i]);
//if (a > a ^ p[i]) a = a ^ p[i];
if (a != 0)
{
p[ ++ k] = a;
sort(p + 1, p + k + 1, cmp);
}
}
int main()
{
cin >> n;
for (int i = 1; i <= n; i ++ ) cin >> c, add(c);
for (int i = 1; i <= k; i ++ )
ans = max(ans, ans ^ p[i]);
cout << ans << "\n";
return 0;
}