Cod sursa(job #43162)

Utilizator CezarMocanCezar Mocan CezarMocan Data 29 martie 2007 21:06:30
Problema NextSeq Scor 85
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.19 kb
type vector=array[0..10000]of longint;
var v,x,z,a,b,c:vector;
    p,n,m,i,j,nr:longint;

function dif(var v,x:vector):boolean;
var i:longint;
begin
  dif:=false;
  for i:=1 to x[0] do
    if x[i]<>v[i] then begin dif:=true;break;end;
end;

begin
  assign(input,'nextseq.in');reset(input);
  assign(output,'nextseq.out');rewrite(output);
  readln(n,m,p);
  for i:=1 to n do read(v[i]);
  for i:=1 to m do read(x[i]);
  for i:=1 to p do read(z[i]);
  for i:=1 to n do begin
    nr:=0;
    for j:=1 to n do if v[j]<=v[i] then inc(nr);
    a[i]:=nr;
  end;
  for i:=1 to m do begin
    for j:=1 to n do if x[i]=v[j] then begin b[i]:=a[j];break;end;
  end;
  for i:=1 to p do begin
    for j:=1 to n do if z[i]=v[j] then begin c[i]:=a[j];break;end;
  end;
  nr:=0;
  for i:=1 to m div 2 do begin
    nr:=b[i];b[i]:=b[m-i+1];b[m-i+1]:=nr;
  end;
  for i:=1 to p div 2 do begin
    nr:=c[i];c[i]:=c[p-i+1];c[p-i+1]:=nr;
  end;
  b[0]:=m;c[0]:=p;nr:=0;
  while dif(b,c) do begin
    i:=1;
    while b[i]=n do begin
      b[i]:=1;
      inc(i);
    end;
    inc(b[i]);
    if b[b[0]+1]>0 then inc(b[0]);
    inc(nr);
  end;
  writeln(nr-1);
  close(input);close(output);
end.