#include<iostream>
using namespace std;
int main()
{
int cash,n,max;
while(cin>>cash>>n)
{
max = 0;
int m[1001],v[1001];
for(int i = 0;i<n;i++) cin>>m[i]>>v[i];
bool dp[100001];
memset(dp,0,sizeof(dp));
dp[0] = true;
for(int i = 0;i<n;i++)
{
for(int j = max;j>=0;j--)
{
if(dp[j])
{
for(int k = 1;k <= m[i];k++)
{
int tmp = j+k*v[i];
if(tmp>cash) break;
dp[tmp] = true;
if(tmp>max) max = tmp;
}
}
}
}
cout<<max<<endl;
}
return 0;
}
06-18
06-18
06-18
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交