讨论 / 为什么暴搜超时1个 5个全错 大牛帮忙看看!
woshiyaoxin 2010-08-27 05:23:00
点我顶贴 收藏 删除
var n,i,j,k,d,g,d1,g1:integer;

a:array[1..1000,1..3] of integer;

procedure find(x,y,z:integer);

var i,j,k:integer;

begin

if y>=d then

begin

write(a[z-1,1]);

halt;

end;

if (z>g) or (x<a[z,1]) then

begin

if x>g1 then g1:=x;

exit;

end;

for j:=1 to 2 do

begin

if j=1 then

begin

if x>=a[z,1] then find(x,y+a[z,3],z+1);

end

else

begin

if x>=a[z,1] then find(x+a[z,2],y,z+1)

end;

end;

end;

begin

readln(d,g);

for i:=1 to g-1 do

for j:=1 to g do

begin

if a[i,1]>a[i+1,1] then

begin

d1:=a[i,1];

a[i,1]:=a[i+1,1];

a[i+1,1]:=d1;

d1:=a[i,2];

a[i,2]:=a[i+1,2];

a[i+1,2]:=d1;

d1:=a[i,3];

a[i,3]:=a[i+1,3];

a[i+1,3]:=d1;

end;

end;

for i:=1 to g do readln(a[i,1],a[i,2],a[i,3]);

find(10,0,1);

write(g1);

end.

查看更多回复
提交回复