Pagini recente » Cod sursa (job #679680) | Cod sursa (job #44811) | Cod sursa (job #2911824) | Cod sursa (job #198156) | Cod sursa (job #613274)
Cod sursa(job #613274)
#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;
}