Pagini recente » Cod sursa (job #2178153) | Cod sursa (job #1639205) | Cod sursa (job #281324) | Cod sursa (job #952147) | Cod sursa (job #1328044)
#include<fstream>
#include<cmath>
using namespace std;
const unsigned int maxN = 100000;
unsigned int N, arr[maxN], _max, start, stop;
void read() {
ifstream f("xormax.in");
f >> N;
for(int i = 0; i < N; i++) {
f >> arr[i];
}
}
unsigned int getMax() {
unsigned int _max = 0;
for(int i = 0; i < N; i++) {
if(arr[i] > _max) _max = arr[i];
}
return _max;
}
void solve() {
unsigned int digits_baseTwo = (unsigned int)log2((double)getMax()), m;
for(int i = 0; i < N; i++) {
m = 0;
for(int j = i; j < N && j-i<=digits_baseTwo; j++) {
m ^= arr[j];
if(m > _max) {
_max = m;
start = i;
stop = j;
}
}
}
}
void write() {
ofstream("xormax.out") << _max << ' ' << start+1 << ' ' << stop+1;
}
int main() {
read();
solve();
write();
return 0;
}