qdzcslj 2011-07-14 06:34:00
点我顶贴
收藏
删除
type node=record
v:integer;
w:1..5;
end;
var a:array[1..30000] of node;
b:array[0..25,0..10000] of longint;
m,n,i,j:integer;
x1,x2:longint;
begin
readln(n,m);
for i:=1 to m do
readln(a[i].v,a[i].w);
for i:=1 to m do begin
for j:=1 to a[i].v-1 do
b[i,j]:=b[i-1,j];
for j:=a[i].v to n do begin
x1:=b[i-1,j-a[i].v];
x2:=b[i-1,j];
if x1+a[i].v*a[i].w>x2 then
b[i,j]:=x1+a[i].v*a[i].w
else
b[i,j]:=x2;
end;
end;
writeln(b[m,n]);
end.