#include<iostream>
using namespace std;
struct food
{
int p,v;
};
int main()
{
int c,m;
int dp[1010];
food f[110];
while(cin>>c>>m)
{
for(int i=1;i<=m;i++)
cin>>f[i].p>>f[i].v;
for(int i=0;i<1010;i++)
dp[i] = -1;
dp[0] = 0;
for(int i=1;i<=m;i++)
{
for(int j=c;j>=0;j--)
if(dp[j]>=0 && j+f[i].p<1010)
dp[j+f[i].p] = max(dp[j]+f[i].v,dp[j+f[i].p]);
}
int cmax = 0;
for(int i=0;i<=c;i++)
cmax = max(cmax,dp[i]);
cout<<cmax<<endl;
}
return 0;
}
poj 3714:點菜問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.