90分代码
#include<bits/stdc++.h>
using namespace std;
int v[30],p[30],DP[30][30010];
int n,m;
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++){scanf("%d%d",&v[i],&p[i]);}
for(int i=1;i<=m;i++){
for(int j=1;j<=n+1;j++){
if(j>=v[i])DP[i][j]=max(DP[i-1][j],v[i]*p[i]+DP[i-1][j-v[i]+1]);
else DP[i][j]=DP[i-1][j];
}
}
printf("%d\n",DP[m][n]);
return 0;
}