Pagini recente » Cod sursa (job #151419) | Cod sursa (job #432666) | Cod sursa (job #5150) | Cod sursa (job #3353) | Cod sursa (job #3172289)
#include <bits/stdc++.h>
using namespace std;
int main() {
ifstream cin("xormax.in");
ofstream cout("xormax.out");
int n;
cin >> n;
int i = 0;
long long ans = -LLONG_MAX;
vector<long long> arr(n, 0);
vector<long long> sumArr(n, 0);
int sIdx = 0;
int eIdx = 0;
while (i != n) {
cin >> arr[i];
sumArr[i] = arr[i];
if (i > 0) {
if ((sumArr[i - 1] ^ arr[i]) > arr[i]) {
sumArr[i] = (sumArr[i - 1] ^ arr[i]);
} else {
sumArr[i] = arr[i];
}
}
// cout << sumArr[i] << " ";
if (ans < sumArr[i]) {
ans = sumArr[i];
sIdx = eIdx = i;
}
i++;
}
i = eIdx;
long long x = arr[eIdx];
while (i > 0) {
if ((x ^ sumArr[i]) == arr[i - 1]) {
sIdx = i - 1;
x = arr[i-1];
} else {
break;
}
i--;
}
cout << endl << ans << " " << sIdx + 1 << " " << eIdx + 1 << endl;
return 0;
}
//3
//1 0 5