fishlong 2011-05-24 22:21:00
点我顶贴
收藏
删除
program duoduo2;
var
n,m,l:integer;
i,j:integer;
k:longint;
t,v:array[1..200] of longint;
f:array[0..2000,0..200] of longint;
function max(a,b:longint):Longint;
begin
if a>b then exit(a) else exit(b);
end;
begin
readln(n,m,l);
for i:=1 to n do readln(t[i],v[i]);
for i:=0 to l do
for j:=1 to m do f[i,j]:=-maxlongint;
for i:=1 to i do
for j:=l downto t[i] do
for k:=m downto 1 do
f[j,k]:=max(f[j,k],f[j-t[i],k-1]+v[i]);
k:=f[0,m];
for i:=1 to l do if f[i,m]>k then k:=f[i,m];
if k>=0 then writeln(k) else writeln('0');
end.