讨论 / 为什么和题解一模一样也错了
0*1 2013-08-03 01:45:00
点我顶贴 收藏 删除
var

a,b:array[1..25]of integer;

c:array[0..30000]of longint;

i,j,n,m:longint;

begin

fillchar(c,sizeof(c),0);

readln(n,m);

for i:=1 to m do

begin

readln(a[i],b[i]);

b[i]:=b[i]*a[i];

end;

for i:=1 to m do

for j:=n downto a[i] do

if b[i]+c[j-a[i]]>c[j] then c[j]:=b[i]+c[j-a[i]];

writeln(c[n]);

end.

#1 mmt@2013-08-02 18:41:00
回复 删除
好吧。。

你把a,b数组改成longint就行了

#2 0*1@2013-08-03 01:45:00
回复 删除
thanks

thanks

查看更多回复
提交回复