Cod sursa(job #638144)

Utilizator andrei1291Balasanu Andrei Nicolae andrei1291 Data 20 noiembrie 2011 19:09:18
Problema Xor Max Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<fstream>
#include<iostream>
using namespace std;
int main(void)
{
	ifstream fin("xormax.in");
	ofstream fout("xormax.out");
	//freopen("xormax.in","rt",stdin);
	//freopen("xormax.out","wt",stdout);
	long N,idx_st,idx_sp,max=0,*x,s,i,j;
	fin>>N;
	x=new long[N];
	for(i=0;i<N;i++)
		fin>>x[i];
	i=0;
	while(i<=N)
	{
		s=x[i];
		for(j=i+1;j<N&&s>=0;j++)
		{
			s=s^x[j];
			if(s>max)
			{
				max=s;
				idx_st=i+1;
				idx_sp=j+1;
			}
			if(s==max)
			{
				if(j<idx_sp)
				{
					idx_st=i+1;
					idx_sp=j+1;
				}
				if(j==idx_sp)
				{
					if(j-i<idx_st-idx_sp)
					{
						idx_st=i+1;
						idx_sp=j+1;
					}
				}
			}
		}
		i++;	
	}
	fout<<max<<" "<<idx_st<<" "<<idx_sp<<endl;
	fout.close();
	fin.close();
	return 0;
}