Pagini recente » Cod sursa (job #1900098) | Cod sursa (job #1146992) | Cod sursa (job #907262) | Cod sursa (job #1660052) | Cod sursa (job #1256459)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream in("xormax.in");
ofstream out("xormax.out");
const int MAXN = 100000;
int v[MAXN+1], N, d[MAXN+1];
int sol = -2000000, start, finish;
int main()
{
in>>N;
for(int i = 1; i <= N; i++)
{
in>>v[i];
if( v[i] > sol )
{
sol = v[i];
start = i;
finish = i;
}
}
d[1] = v[1];
for(int i = 2; i <= N; i++)
d[i] = d[i-1]^v[i];
for(int i = 1; i <= N; i++)
for(int j = i; j <= N; j++)
{
int c = d[i]^d[j];
if( c > sol )
{
sol = c;
start = i + 1;
finish = j;
}
else
if( c == sol )
{
if( j < finish )
{
start = i + 1;
finish = j;
}
else
if( j == finish )
{
int lgc = j - (i+1) + 1;
int lg = finish-start+1;
if( lgc < lg )
{
start = i + 1;
finish = j;
}
}
}
}
out<<sol<<' '<<start<<' '<<finish;
return 0;
}