var a:array [0..30010,0..30]of longint;v,p:array [1..30] of integer;
i,j,n,m:integer;
begin
read(n,m);
for i:=1 to m do begin read(v[i],p[i]);p[i]:=p[i]*v[i];end;
for i:=0 to m do
a[0,m]:=0;
for i:=0 to n do
a[i,0]:=0;
for i:=1 to m do
for j:=1 to n do
begin
if(j>=v[i])and((a[j-v[i],i-1]+p[i])>=a[j,i-1])
then a[j,i]:=a[j-v[i],i-1]+p[i]
else a[j,i]:=a[j,i-1];
end;
write(a[n,m]);
end.
type xy=record
x,y:longint;
end;
var i,j,n,m,k:longint;
a:array[1..30] of xy;
f:array[0..30,0..30002] of longint;
function max(a,b:longint):longint;
begin
if a>b then
max:=a
else max:=b;
end;
begin
readln(n,m);
for i:=1 to m do
readln(a[i].x,a[i].y);
for i:=1 to m do
for j:=1 to n do
if j>=a[i].x then
f[i,j]:=max(f[i-1,j-a[i].x]+a[i].x*a[i].y,f[i-1,j])
else
f[i,j]:=f[i-1,j];
writeln(f[m,n]);
end.
测试结果1: 测试结果正确
测试结果2: 测试结果正确
测试结果3: 测试结果正确
测试结果4: 测试结果正确
测试结果5: 测试结果正确
测试结果6: 测试结果正确
测试结果7: 测试结果正确
测试结果8: 测试结果正确
测试结果9: 测试结果正确
测试结果10: 测试结果正确