Cod sursa(job #1453956)

Utilizator mihaitamoglanmihai moglan mihaitamoglan Data 25 iunie 2015 10:00:33
Problema Cel mai lung subsir comun Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.87 kb
type matrice=array [0..1025,0..1025]of integer;
     tablou=array [1..1025]of integer;
var t,a,rez:tablou;
    c:matrice;
    i,j,k,m,n,max:integer;
    f,g:text;
begin
assign(f,'cmlsc.in');
assign(g,'cmlsc.out');
reset(f);
rewrite(g);
read(f,n,m);
for i:=1 to n do
 read(f,t[i]);
for i:=1 to m do
 read(f,a[i]);
for i:=1 to n do
 for j:=1 to m do
  begin
   if t[i]=a[j] then c[i,j]:=c[i-1,j-1]+1
   else if c[i-1,j]>c[i,j-1] then c[i,j]:=c[i-1,j]
           else c[i,j]:=c[i,j-1];
  end;
i:=n;
j:=m;
while (i>0)and(j>0) do
  if t[i]=a[j] then begin
                    k:=k+1;
                    rez[k]:=a[j];
                    i:=i-1;
                    j:=j-1;
                    end
  else if c[i-1,j]<c[i,j-1] then j:=j-1
                  else i:=i-1;

writeln(g,k);
for i:=k downto 1 do
 write(g,rez[i],' ');
close(f);
close(g);
end.