Pagini recente » Cod sursa (job #1459429) | Cod sursa (job #1220350) | Cod sursa (job #2686162) | Cod sursa (job #1348108) | Cod sursa (job #2502932)
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
struct obiect {
int w, p;
} v[5005];
int n, g, sol;
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);
sol = max(sol, d[j + v[i].w]);
}
printf("%d", sol);
return 0;
}