Cod sursa(job #1939943)

Utilizator AvramDanielAvram Daniel AvramDaniel Data 26 martie 2017 11:03:48
Problema Cel mai lung subsir comun Scor 20
Compilator fpc Status done
Runda Arhiva educationala Marime 0.78 kb
program cmlsc;
  var m,n,c,i,j:word;
      a,b,sir:array[1..1024] of word;
      d:array[0..1024,0..1024] of word;
      fi,fo:text;
begin  assign(fi,'cmlsc.in'); assign(fo,'cmlsc.out'); reset(fi); rewrite(fo);
  read(fi,m); readln(fi,n);

  for i:=1 to m-1 do read(fi,a[i]);
  readln(fi,a[m]);

  for i:=1 to n do read(fi,b[i]);
  close(fi);

  for i:=0 to m do
    for j:=0 to n do d[i,j]:=0;

   for i:=1 to m do
    for j:=1 to n do
      if a[i]=b[j] then d[i,j]:=d[i-1,j-1]+1
             else if d[i-1,j]>d[i,j-1] then d[i,j]:=d[i-1,j] else d[i,j] :=d[i,j-1];


  c:=1;
    for i:=1 to m do
    for j:=1 to n do
      if d[i,j]=c then begin sir[c]:=a[i]; inc(c); end;

  writeln(fo,c-1);
  for i:=1 to c-1 do write(fo,sir[i],' ');
  close(fo);

  end.