Pagini recente » Cod sursa (job #2371929) | Cod sursa (job #3181401) | Cod sursa (job #2462794) | Cod sursa (job #62337) | Cod sursa (job #2502930)
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
struct obiect {
int w, p;
} v[5005];
int n, g;
int d[5005];
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 = 0; i <= g; i++)
d[i] = -1;
d[0] = 0;
for(int i = 1; i <= n; i++)
for(int j = g - v[i].w; j >= 0; j--)
if(d[j] != -1)
d[j + v[i].w] = max(d[j + v[i].w], d[j] + v[i].p);
printf("%d", d[g]);
return 0;
}