Az alábbi letöltési lehetőségek közül választhatsz: (
segítség)
Típus: text/plain
Tartalmaz szöveget
Karakterkódolás: us-ascii
Méret: 1 KB
program DNS;
uses
SysUtils;
var
t:array[0..100,0..100] of integer;
g1,g2,g3:string;
l1,l2,l3:integer;
procedure beolvas;
var f:text;
begin
assign(f,'lkr0.be');
reset(f);
readln(f,g1);
l1:=length(g1);
readln(f,g2);
l2:=length(g2);
close(f);
end;
procedure kiir;
var f:text;
begin
assign(f,'dns.ki');
rewrite(f);
writeln(f,l3);
writeln(f,g3);
close(f);
end;
procedure munka;
var i,j:integer;
begin
for i:=0 to l1 do
begin
t[0,i]:=0;
end;
for i:=0 to l2 do
begin
t[i,0]:=0;
end;
for i:=1 to l1 do
begin
for j:=1 to l2 do
begin
if g1[i]=g2[j] then
t[i,j]:=t[i-1,j-1]+1
else
begin
if t[i-1,j]>t[i,j-1] then t[i,j]:=t[i-1,j] else t[i,j]:=t[i,j-1];
end;
end;
end;
end;
procedure befejez;
var i,j:integer;
s:string;
k:boolean;
begin
i:=l1;
j:=l2;
s:='';
k:=false;
l3:=t[l1,l2];
repeat
if (i=0) or (j=0) then
begin
k:=true;
end
else
begin
if (i=1) and (j=1) then
begin
k:=true;
if g1[i]=g2[j] then s:=g1[i]+s;
end
else
begin
if g1[i]=g2[j] then
begin
s:=g1[i]+s;
i:=i-1;
j:=j-1;
end
else
begin
if t[i-1,j]>t[i,j-1] then i:=i-1 else j:=j-1;
end;
end;
end;
until k;
g3:=s;
end;
begin
beolvas;
munka;
befejez;
kiir;
end.