Pagini recente » Cod sursa (job #3161879) | Cod sursa (job #1441464) | Cod sursa (job #1140589) | Cod sursa (job #27486) | Cod sursa (job #2795353)
#include <iostream>
#define NMAX 5005
#define GMAX 10005
using namespace std;
struct elem {
int g, c;
} a[NMAX];
int n, g, crt[GMAX], pr[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", &a[i].g, &a[i].c);
for(int gc = 1; gc <= g; ++gc)
crt[gc] = (a[1].g <= gc) * a[1].c;
for(int i = 2; i <= n; ++i) {
memcpy(pr, crt, sizeof(crt));
for(int gc = 1; gc <= g; ++gc)
crt[gc] = max(pr[gc], pr[gc - a[i].g] + a[i].c);
}
printf("%d", crt[g]);
return 0;
}