Pagini recente » Cod sursa (job #954514) | Cod sursa (job #933281) | Cod sursa (job #2640705) | Cod sursa (job #2191035) | Cod sursa (job #670444)
Cod sursa(job #670444)
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
struct maxim
{
maxim(int p, int q, int r) { start = p; stop = q; val = r; }
int start, stop;
int val;
};
int main()
{
ifstream in("xormax.in");
ofstream out("xormax.out");
register int n, x, y; in >> n;
in >> x; maxim t(1, 1, x); queue<maxim> ql; ql.push(t); y = x;
for(int i=2; i <= n; i++)
{
in >> x;
ql.push(maxim(i-1, i, x ^ y));
if((x ^ ql.front().val) > t.val) t = ql.back();
ql.pop();
for(int j = 2; j < i; j++)
{
ql.push(maxim(ql.front().start, i, x ^ ql.front().val));
if((x ^ ql.front().val) > t.val) t = ql.back();
ql.pop();
}
y = x;
}
out << t.val << ' ' << t.start << ' ' << t.stop;
//system("PAUSE");
return 0;
}