Adjacent Xor
Join My Whatsapp Group
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,x,a[200001],dp[200001][2];
void nas() {
cin >> n >> x;
for(int i=1;i<=n;++i)
cin >> a[i];
for(int i=2;i<=n;++i) {
dp[i][0]=max(dp[i-1][0]+(a[i-1]^a[i]),dp[i-1][1]+((a[i-1]+x)^a[i]));
dp[i][1]=max(dp[i-1][0]+(a[i-1]^(a[i]+x)),dp[i-1][1]+((a[i-1]+x)^(a[i]+x)));
}
cout << max(dp[n][0],dp[n][1]) << endl;
}
signed main() {
int T;
cin >> T;
while(T--) nas();
}
Comments
Post a Comment