Problem Link #include <iostream> using namespace std; int main() { int t, n, k; int arr[1001]; bool dp[1001][1024]; cin >> t; while(t--) { cin >> n >> k; for(int i = 0; i < n; i++) { cin >> arr[i]; } for(int i = 0; i <= n; i++) { for(int j = 0; j <= 1023; j++) { dp[i][j] = false; if(j == 0) { dp[i][j] = true; } else if(i > 0) { dp[i][j] = dp[i - 1][j] || dp[i - 1][j ^ arr[i - 1]]; } } } int maxVal = k; for(int i = 0; i <= 1023; i++) { if(dp[n][i]) { maxVal = max(maxVal, k ^ i); } } cout << maxVal << endl; } return 0; }