Codevs1115 开心的金明 ——2006年NOIP全国联赛普及组
水水水水水……
#include <cstdio>
#include <cstring>
#include <iostream>
#include <cstdlib>
using namespace std;
#define MAXN (25+5)
#define MAXV (30000+30)
struct item{
int v, p;
}l[MAXN];
int dp[MAXV];
int main()
{
int V, n;
cin >> V >> n;
for(int i = 1; i <= n; i ++)
scanf("%d%d", &l[i].v, &l[i].p);
for(int i = 1; i <= n; i ++)
for(int j = V; j >= 0; j --)
if(j >= l[i].v)
dp[j] = max(dp[j], dp[j-l[i].v] + l[i].v*l[i].p);
cout << dp[V];
return 0;
}