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;
const FName = 'lkr';
FNum = '0';
FBe = FName+FNum+'.be';
FKi = FName+FNum+'.kix';
CFel = 1;
CBal = 2;
CAtl = 3;
type TArr = array[0..100,0..100] of byte;
var cache:TArr;
choice:TArr;
x,y:string;
ki:text;
procedure load;
var be:text;
begin
assign(be,FBe);
reset(be);
readln(be,x);
readln(be,y);
close(be);
end;
procedure dp;
var i,j:byte;
begin
for i:=0 to length(x) do cache[i,0]:=0;
for j:=0 to length(y) do cache[0,i]:=0;
for i:=1 to length(x) do
for j:=1 to length(y) do
begin
if x[i]=y[j] then
begin
cache[i,j]:=cache[i-1,j-1]+1;
choice[i,j]:=Catl;
end else
if cache[i-1,j]>cache[i,j-1] then
begin
cache[i,j]:=cache[i-1,j];
choice[i,j]:=Cfel;
end else
begin
cache[i,j]:=cache[i,j-1];
choice[i,j]:=Cbal;
end;
end;
end;
procedure wrout(i,j:byte);
begin
if (i=0)or(j=0) then exit;
if choice[i,j]=CFel then wrout(i-1,j) else
if choice[i,j]=CBal then wrout(i,j-1) else
begin
wrout(i-1,j-1);
write(ki,x[i]);
end;
end;
begin
load;
dp;
assign(ki,Fki);
rewrite(ki);
writeln(ki,cache[length(x),length(y)]);
wrout(length(x),length(y));
close(ki);
readln;
end.