Pagini recente » Cod sursa (job #766865) | Cod sursa (job #100788) | Cod sursa (job #1294203) | Cod sursa (job #2461502) | Cod sursa (job #661919)
Cod sursa(job #661919)
#include <iostream>
#include <fstream>
using namespace std;
#define SIZE 100000
struct sub {
sub() { start = stop = value = 0; }
int start, stop, value;
};
int main()
{
ifstream in("xormax.in");
ofstream out("xormax.out");
sub maxSoFar, maxEndHere; int N, seq[SIZE];
in >> N;
for(int i = 0; i < N; i++)
in >> seq[i];
in.close();
for(int i = 0; i < N; i++)
{
maxEndHere.value = maxEndHere.value ^ seq[i] > 0 ? maxEndHere.value ^ seq[i] : 0;
maxEndHere.stop = i;
if(maxEndHere.value > maxSoFar.value)
{
maxSoFar = maxEndHere;
}
else
{
if(maxEndHere.value != maxSoFar.value)
{
maxEndHere.start = i+1;
}
/*else
{
if((maxEndHere.stop - maxEndHere.start) < (maxSoFar.stop - maxSoFar.start))
maxSoFar = maxEndHere;
}*/
}
}
out << maxSoFar.value << ' ' << maxSoFar.start+1 << ' ' << maxSoFar.stop+1;
//system("PAUSE");
return 0;
}