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 tukor;
uses
SysUtils;
const FName = 'tukor';
FNum = 'A';
FBe = FName+'.be'+FNum;
FKi = FName+'.kix'+FNum;
var s,s2:string;
k:shortint;
cache:array[1..100,1..100]of shortint;
procedure load;
var be:textfile;
i,j:shortint;
begin
assignfile(be,FBe);
reset(be);
readln(be,s);
closefile(be);
for i:=1 to 100 do
for j:=1 to 100 do
cache[i,j]:=-1;
end;
procedure final;
var ki:textfile;
begin
assignfile(ki,Fki);
rewrite(ki);
writeln(ki,k);
writeln(ki,s2);
closefile(ki);
end;
function f(k,v:shortint):shortint;
var r,a,b:shortint;
begin
if cache[k,v]<>-1 then f:=cache[k,v] else
begin
if v<=k then r:=v-k+1 else
if s[k]=s[v] then
r:=2+f(k+1,v-1)
else begin
a:=f(k+1,v);
b:=f(k,v-1);
if a>=b then r:=a else r:=b;
end;
cache[k,v]:=r;
result:=r;
end;
end;
function g(k,v:shortint):string;
begin
if k>v then g:='' else
if k=v then g:=s[k] else
if s[k]=s[v] then g:=s[k]+g(k+1,v-1)+s[v] else
if cache[k+1,v]>cache[k,v-1] then g:=g(k+1,v) else g:=g(k,v-1);
end;
begin
load;
k:=f(1,length(s));
s2:=g(1,length(s));
final;
end.