Cod sursa(job #1287594)

Utilizator nickulNic Kul nickul Data 7 decembrie 2014 21:22:41
Problema Xor Max Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 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;
		}
	}
	for(i=0;i<n-1;i++)
		for(j=i+1;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;
			}
			else if(c==max&&stop-start==j-i-1&&stop>j)
			{
				max=(v.at(i)^v.at(j));
				start=i+2;stop=j+1;
			}
		}
	out<<max<<" "<<start<<" "<<stop;
}