Cod sursa(job #613274)

Utilizator nyxphooana denisa nyxpho Data 20 septembrie 2011 16:41:45
Problema Xor Max Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream f("xormax.in");
ofstream g("xormax.out");
int main()
{
	int i,j,n,k=1,aux,max = 0,imax,jmax;
	int *a,**b;
	f>>n;
	a = new int[n];
	b = new int*[2];
	b[0] = new int[n];
	b[1] = new int[n];
	for(i=0;i<n;i++)
	{
		f>>a[i];
		b[0][i] = a[i];
	}
	for(i=n;i>0;i--,k=1-k)
	   for(j=0;j<i;j++)
	       if(b[1-k][j]^a[j+n-i]>b[1-k][j+1])
		      {
				b[k][j] = b[1-k][j]^a[j+n-i];
				if(max<b[k][j])
				  {
					max = b[k][j];
					jmax = j+n-i;
				  }
			  }
		    else
			{
			  b[k][j] = b[1-k][j+1];
			  if(max<b[k][j])
				  {
					max = b[k][j];
					jmax = j+n-i;
				  }
			}
	aux = max; j = jmax;
	while(aux)
	   {
		aux = aux^a[j];
		j--;
	   }
	imax = j+1;	
	g<<max<<" "<<imax+1<<" "<<jmax+1;	  
	return 0;
}