Pagini recente » Cod sursa (job #1802204) | Cod sursa (job #1051976) | Cod sursa (job #2158611) | Cod sursa (job #3229773) | Cod sursa (job #826206)
Cod sursa(job #826206)
#include <stdio.h>
#define max(x,y) ((x) > (y)? (x) : (y))
long v[2][10001];
long N, G, g[5001], w[5001];
int main() {
long i, j;
freopen("rucsac.in", "r", stdin);
freopen("rucsac.out", "w", stdout);
scanf("%ld %ld", &N, &G);
for(i = 1; i <= N; i++)
scanf("%ld %ld", &g[i], &w[i]);
for(i = 1; i <= N; i++) {
for(j = 1; j <= G; j++)
if(j < g[i])
v[i % 2][j] = v[(i - 1) % 2][j];
else v[i % 2][j] = max(v[(i - 1) % 2][j], v[(i - 1) % 2][j - g[i]] + w[i]);
}
i--;
printf("%ld", v[i % 2][G]);
return 0;
}