Cod sursa(job #932591)

Utilizator DeepGreenBurcea Iulian-Catalin DeepGreen Data 29 martie 2013 01:09:44
Problema Xor Max Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<iostream>
#include<fstream>

using namespace std;
#define MAX 100000

ifstream f("xormax.in");
ofstream g("xormax.out");

void citire(int v[MAX],int &n){
	f>>n;
	for(int i=0;i<n;i++){
		f>>v[i];
	}
}

int main(){
	int n,v[MAX],xor[MAX];
	citire(v,n);
	xor[0]=v[0];
	for(int i=1;i<n;i++){
		xor[i]=xor[i-1]^v[i];
	}
	int max=0,left=0,right=n;
	for(int i=0;i<n-1;i++){
		for(int j=i+1;j<n;j++){
			int k=(xor[j]^xor[i])^v[i];
			if(k>max){//&&(j-i)<(right-left)){
				max=k;
				left=i;
				right=j;
			}
			if(k==max&&(right-left)>(j-i)){
				right=j;
				left=i;
			}
		}
	}
	g<<max<<" "<<left+1<<" "<<right+1;
	return 0;
}