Cod sursa(job #733157)

Utilizator elffikkVasile Ermicioi elffikk Data 11 aprilie 2012 16:01:39
Problema Xor Max Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.79 kb
var a,b:array[1..100000]of longint;
n:longint;

procedure init;
var i:longint; f:text;
begin
  assign(f, 'xormax.in');
  reset(f);
  read(f,n);
  for i:=1 to n do read(f, a[i]);
  close(f);
end;

procedure rez;
var i,j,max,maxi,maxj,maxlen:longint; f:text;
begin
  b[1]:=a[1];
  for i:=2 to n do b[i]:=a[i] xor b[i-1];
  max:=a[1];
  maxi:=1;
  maxj:=1;
  maxlen:=1;
  for i:=1 to n do
    for j:=i to n do
        if (b[j] xor b[i] xor a[i] > max) or (b[j] xor b[i] xor a[i] = max) and (j-i+1<maxlen)
        then
        begin
          max:= b[j] xor b[i] xor a[i];
          maxi:=i;
          maxj:=j;
          maxlen:=j-i+1;
        end;
  assign(f, 'xormax.out');
  rewrite(f);
  write(f,max,' ',maxi,' ',maxj);
  close(f);
end;

begin
  init;
  rez;
end.