Cod sursa(job #932600)

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

using namespace std;
#define MAX 100005

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

void init(int v[MAX],int &n,int x[MAX]){
	f>>n;
	for(int i=0;i<n;i++){
		f>>v[i];
		if(i>0){
			x[i]=x[i-1]^v[i];
		}else{
			x[0]=v[0];
		}
	}
}

int main(){
	int n,v[MAX],x[MAX];
	init(v,n,x);
	
	int max=0,left=0,right=n;
	for(int i=0;i<n;i++){
		for(int j=i;j<n;j++){
			int k=(x[j]^x[i])^v[i];
			if(k>max){
				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;
}