#include<bits/stdc++.h>
using namespace std;
#define MAXN 1005
struct Info{
int wht,imp,val;
};
Info v[MAXN];
int ans[MAXN][MAXN];
int main()
{
int vol,kind,res=-1;
cin>>vol>>kind;
for(int i=1;i<=kind;i++)
{
cin>>v[i].wht>>v[i].imp;
v[i].val=v[i].wht*v[i].imp;
}
for(int i=1;i<=kind;i++){
for(int j=0;j<=vol;j++)
{if(j>=v[i].wht)
{
ans[i][j]=max(ans[i-1][j],ans[i-1][j-v[i].wht]+v[i].val);
}
else
{
ans[i][j]=ans[i-1][j];
}
// cout<<ans[i][j]<<" ";
}
// cout<<endl;
}
cout<<ans[kind][vol];
return 0;
}
感谢大佬