Pagini recente » Cod sursa (job #2844707) | Cod sursa (job #1585950) | Cod sursa (job #2839038) | Cod sursa (job #630181) | Cod sursa (job #2455775)
type vector = array[1..1026,1..1026] of integer;
var x:vector;
type vector2 = array[1..1050000] of integer;
var y:vector2;
fin,fout:textfile;
i,e,a,lsirm,lsirn,current:integer;
function max(num1,num2:integer):integer;
begin
if num1>num2 then
max:=num1
else
max:=num2;
end;
begin
a:=0;
assign (fin, 'cmlsc.in');
reset(fin);
assign (fout, 'cmlsc.out');
rewrite(fout);
read(fin, lsirm, lsirn);
for i:=1 to lsirm do
read(fin,x[i+2,1]);
for i:=1 to lsirn do
read(fin,x[1,i+2]);
for i:=3 to lsirm+2 do begin
for e:=3 to lsirn+2 do begin
if x[1,e]=x[i,1] then begin
x[i,e]:=x[i-1,e-1]+1;
end
else
x[i,e]:=max(x[i-1,e],x[i,e-1]);
end;
end;
i:=lsirm+2;
e:=lsirn+2;
current:=x[i,e];
while current<>0 do begin
if x[i,1]=x[1,e] then begin
a:=a+1;
y[a]:=x[i,1];
i:=i-1;
e:=e-1;
end
else begin
if x[i,e-1]>x[i-1,e] then
e:=e-1
else
i:=i-1;
end;
current:=x[i,e];
end;
writeln(fout,x[lsirm+2,lsirn+2]);
for i:=a downto 1 do
write(fout,y[i],' ');
close(fin);
close(fout);
end.