Pagini recente » Cod sursa (job #1777269) | Cod sursa (job #2488224) | Cod sursa (job #711260) | Cod sursa (job #1032980) | Cod sursa (job #1584059)
#include <iostream>
#include <cstdio>
using namespace std;
#define DIM 10005
struct sum {
char can;
int t;
} V[DIM];
int N, G, g, p;
int main() {
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%d %d\n", &N, &G);
V[0].can = 1;
for(int i = 1; i <= N; ++i) {
scanf("%d %d\n", &g, &p);
for(int j = G - g; j >= 0; --j) {
if(V[j].can) {
V[j + g].can = 1;
V[j + g].t = max(V[j + g].t, V[j].t + p);
}
}
}
int mx = 0;
for(int i = 1; i <= G; ++i) {
mx = max(mx, V[i].t);
}
cout << mx << '\n';
return 0;
}