Pagini recente » Cod sursa (job #1735739) | Cod sursa (job #385377) | Cod sursa (job #1486659) | Cod sursa (job #929459) | Cod sursa (job #641972)
Cod sursa(job #641972)
#include<cstdio>
const int N = 5002;
struct rucsac {
int g, p;
};
int n, g, d[3][N * 2];
rucsac v[N];
inline int max(int x, int y) {
return x > y ? x : y;
}
void citire() {
scanf("%d%d", &n, &g);
for (int i = 1; i <= n; ++i)
scanf("%d%d", &v[i].g, &v[i].p);
}
void rucsac() {
for (int i = 1; i <= n; ++i)
for (int s = 0; s <= g; ++s) {
d[i & 1][s] = d[(i - 1) & 1][s];
if (v[i].g <= s)
d[i & 1][s] = max(d[i & 1][s], d[(i - 1) & 1][s - v[i].g] + v[i].p);
}
printf("%d\n", d[n & 1][g]);
}
int main() {
freopen("rucsac.in", "r", stdin);
freopen("rucsac.out", "w", stdout);
citire();
rucsac();
return 0;
}