讨论 / 直接搜不就行了
朱星滔 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.

查看更多回复
提交回复