Pagini recente » Cod sursa (job #2725701) | Cod sursa (job #1218365) | Cod sursa (job #316200) | Cod sursa (job #298588) | Cod sursa (job #2761151)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 5003;
const int GMAX = 10003;
int n, g;
struct obiect {
int w, p;
} v[NMAX];
int dp[GMAX];
int main() {
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%d %d", &n, &g);
for (int i = 1; i <= n; i++) {
scanf("%d %d", &v[i].w, &v[i].p);
}
for(int i = 1; i <= g; i++)dp[i] = -1;
for (int i = 1; i <= n; i++) {
for (int j = g; j >= v[i].w; j--) {
if(dp[j-v[i].w] != -1)dp[j] = max(dp[j - v[i].w] + v[i].p, dp[j] );
}
}
int hmax = 0;
for(int i=1;i<=g;i++)
hmax = max(hmax,dp[i] );
printf("%d\n",hmax);
return 0;
}