題意:給出一個價值sum,然後給出n,代表n個方案,接著n對代表個數與價值,要求最接近sum,但不超過sum的價值。
#include
#include
#include
#include
using namespace std;
int dp[100010];
int main()
{
int sum ,i ,j ,k ,n;
while(~scanf("%d%d",&sum,&n)){
int m[20],v[20];
for(i=1;i<=n;i++)
cin>>m[i]>>v[i];
if(sum==0){
cout<<0<=0;j--)
if(dp[j])
for(k=1;k<=m[i];k++){
tem=j+k*v[i];
if(tem>sum)
continue;
dp[tem]=1;
if(tem>MAX)
MAX=tem;
}
cout<