Pagini recente » Cod sursa (job #462198) | Cod sursa (job #1270654) | Cod sursa (job #361817) | Cod sursa (job #739325) | Cod sursa (job #152135)
Cod sursa(job #152135)
var vxor:array[0..100000]of longint;
a:array[1..100000,1..100000]of longint;
n,i,j,max,start, stop,x:longint;
f,g:text;
begin
assign(f,'xormax.in');
assign(g,'xormax.out');
reset(f);
rewrite(g);
read(f,n);
vxor[0]:=0;
{(a xor b=c) <=> (a=b xor c) <=> (a xor c=b)}
for i:=1 to n do
begin
read(f,x);
{ WRITE(g,x,' ');}
vxor[i]:=vxor[i-1] xor x;
end;
max:=0;
{ writeln(g); }
for i:=0 to n-2 do
begin
{ for j:=1 to i do
write(g,'* ');}
for j:=i+2 to n do
begin
a[i+1,j]:=vxor[i] xor vxor[j];
{ write(g,a[i+1,j],' ');}
if (a[i+1,j]=max) and (j<stop) then
begin
start:=i+1;
stop:=j;
end else
if (a[i+1,j]=max) and (j-i-1<stop-start) then
begin
start:=i+1;
stop:=j;
end else
if a[i+1,j]>max then
begin
max:=a[i+1,j];
start:=i+1;
stop:=j;
end;
end;
{ writeln(g);}
end;
write(g,max,' ',start,' ',stop);
close(f);
close(g);
end.