朱星滔 2010-08-17 21:36:00
点我顶贴
收藏
删除
var
n,m,l,i,k:longint;
ans:qword;
a:array[1..2000,1..3]of longint;
procedure dfs(dep,v,now,k:longint);
begin
if k=m then begin if (now>ans)and(v<=l)then ans:=now;exit;end;
if (dep=n)then begin if (now>ans)and(k=m) then now:=ans; exit; end;
if v>l then exit;
if k>m then exit;
dfs(dep+1,v+a[dep+1,1],now+a[dep+1,2],k+a[dep+1,3]);
dfs(dep+1,v,now,k);
end;
begin
readln(n,m,l);
for i:=1 to n do readln(a[i,1],a[i,2]);
for i:=1 to n do a[i,3]:=1;
dfs(0,0,0,0);
write(ans);
end.