Pagini recente » Istoria paginii runda/ultimaadmine | Istoria paginii runda/nimic_suspect2 | Cod sursa (job #1785880) | Cod sursa (job #2894831) | Cod sursa (job #1256454)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream in("xormax.in");
ofstream out("xormax.out");
const int MAXN = 100000;
unsigned long long v[MAXN+1], N, d[MAXN+1];
unsigned long long sol = 0, start, finish;
int main()
{
in>>N;
for(int i = 1; i <= N; i++)
in>>v[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 + 1; j <= N; j++)
if( j - (i+1) + 1 >= 2 )
{
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;
}