Pagini recente » Cod sursa (job #1875896) | Cod sursa (job #2744937) | Cod sursa (job #2221796) | Cod sursa (job #2443363) | 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;
}