Cod sursa(job #1287692)

Utilizator nickulNic Kul nickul Data 7 decembrie 2014 22:17:16
Problema Xor Max Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream>
#include<vector>

using namespace std;

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

int main()
{
	size_t n,i,j,max,start,stop,c;
	vector<size_t> v;
	in>>n;
	v.resize(n);
	for(i=0;i<n;i++) in>>v.at(i);
	max=v.at(0);
	start=1;
	stop=1;
	for(i=0;i<n-1;i++)
	{
		v.at(i+1)^=v.at(i);
		if(v.at(i+1)>max)
		{
			max=v.at(i+1);
			start=1;
			stop=i+2;
		}
	}
	i=0;
	while(i<n-2)
		{
			for(j=i+2;j<n;j++)
			{
				c=v.at(i)^v.at(j);
				if(c>max)
				{
					max=(v.at(i)^v.at(j));
					start=i+2;stop=j+1;
				}
				else if(c==max&&stop-start>j-i-1)	
				{
					max=(v.at(i)^v.at(j));
					start=i+2;stop=j+1;
				}
			}
			i++;
		}
	out<<max<<" "<<start<<" "<<stop;
}