Pagini recente » Cod sursa (job #456591) | Cod sursa (job #2279357) | Diferente pentru runda/viata_periculoasa_pe_infoarena2 intre reviziile 2 si 3 | Cod sursa (job #2302884) | Cod sursa (job #638196)
Cod sursa(job #638196)
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
freopen("xormax.in","rt",stdin);
freopen("xormax.out","wt",stdout);
long N,idx_st=1,idx_sp=1,max=0,*x,s=0,i,j;
scanf("%ld",&N);
x=(long *)malloc(N*sizeof(long));
for(i=0; i<N; i++)
scanf("%ld",&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;
printf("%ld %ld %ld",max,idx_st,idx_sp);
fclose(stdin);
fclose(stdout);
//fout.close();
//fin.close();
return 0;
}