记录编号 |
138227 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
题目名称 |
神奇的压缩机 |
最终得分 |
100 |
用户昵称 |
WW TT |
是否通过 |
通过 |
代码语言 |
Pascal |
运行时间 |
0.657 s |
提交时间 |
2014-11-05 19:29:29 |
内存使用 |
0.19 MiB |
显示代码纯文本
var f:array[1..5000] of longint;
len:array[1..5000] of longint;
te,gg,n,aa,x,y,a,b,i,j,k:longint;
s1,s2,s:ansistring;
function min(x,y:longint):longint;
begin
if x>y then exit(y);
exit(x);
end;
function max(x,y:longint):longint;
begin
if x>y then exit(x);
exit(y);
end;
procedure init;
begin
readln(s);
n:=length(s);
while s[n]=' ' do
begin
delete(s,n,1);
dec(n);
end;
readln(a,b);
for i:=2 to n do
for j:=1 to i-1 do
begin
x:=i;
while (x<=n)and(s[x]=s[((x-i) mod j)+i-j ]) do
inc(x);
len[i]:=max(len[i],x-i);
end;
end;
begin
assign(input,'WinCHG.in');
assign(output,'WinCHG.out');
reset(input);
rewrite(output);
init;
f[1]:=a;
for i:=2 to n do
begin
f[i]:=f[i-1]+a;
for j:=2 to i-1 do
if (j+len[j]-1)>=i then f[i]:=min(f[i],f[j-1]+b);
end;
writeln(f[n]);
close(output);
end.