Adjacent Xor

 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