Pagini recente » Cod sursa (job #1948901) | Cod sursa (job #2737852) | Cod sursa (job #3126232) | Cod sursa (job #1140932) | Cod sursa (job #1992318)
#include <iostream>
#include <fstream>
using namespace std;
int main() {
int N, tmp, maxXOR, currXOR, start, end, maxStart, maxEnd;
ifstream fin("xormax.in");
fin >> N;
int list[N];
for(int i = 0; i < N; i++) {
fin >> tmp;
list[i] = tmp;
}
currXOR = 0;
maxXOR = 0;
start = 0;
end = 0;
maxStart = 0;
maxEnd = 0;
for(int i = 0; i < N; i++) {
end = i;
if(list[i] > (currXOR ^ list[i])) {
start = i;
}
currXOR = max(currXOR ^ list[i], list[i]);
if(currXOR > maxXOR) {
maxStart = start;
maxEnd = end;
}
maxXOR = max(currXOR, maxXOR);
}
ofstream fout("xormax.out");
fout << maxXOR << " " << (maxStart+1) << " " << (maxEnd+1);
return 0;
}