AtCoder Beginner Contest 141
問題文
省略
省略
C++に変換後のコードはこちら
int N;
ll A[1d5];
int ok[60];
{
int i, j, k;
ll res = 0, s = 0;
rd(N,A(N));
rep(i,N) s ^= A[i];
rep(i,60) if(s & (1LL<<i)){
res += (1LL<<i);
rep(j,N) if(A[j] & (1LL<<i)) A[j] ^= (1LL<<i);
}
k = 0;
for(i=59; i>=0; i--){
rep(j,k,N) if(A[j] & (1LL<<i)) break;
if(j==N) continue;
if(j!=k) swap(A[k], A[j]);
rep(j,k+1,N) if(A[j] & (1LL<<i)) A[j] ^= A[k];
k++;
if(k >= N) break;
}
s = 0;
rep(i,N) if(s < (s^A[i])) s ^= A[i];
res += 2s;
wt(res);
}
Current time: 2024年04月20日04時49分42秒
Last modified: 2019年09月16日00時08分14秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Beginner_Contest ABC141 ABC_F
トップページに戻る
Logged in as: unknown user (not login)