http://acm.hdu.edu.cn/showproblem.php?pid=2111
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int dp[105];
int main()
{
int v,n;
while(scanf("%d",&v)!=EOF,v)
{
scanf("%d",&n);
int p,m;
memset(dp,0,sizeof(dp));
for(int i=1;i<=n;i++)
{
scanf("%d%d",&p,&m);
for(int k=1;k<=m;k++)//加个数量的循环
for(int j=v;j>=1;j--)
{
dp[j]=max(dp[j],dp[j-1]+p);
}
}
cout<<dp[v]<<endl;
}
}