Cod sursa(job #798915)
| Utilizator | Data | 17 octombrie 2012 16:18:28 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.42 kb |
#include <cstdio>
#define MAX(a,b) (a<b)?b:a
int N,G;
int M[10010];
int main () {
int w, v;
freopen("rucsac.in","rt",stdin);
freopen("rucsac.out","wt",stdout);
scanf("%d %d", &N, &G);
for (int i=1; i<=N; ++i) {
scanf("%d %d", &w, &v);
for (int j=G; j>=w; --j)
if (j>=w) M[j] = MAX(M[j], M[j-w] + v);
}
printf("%d", M[G]);
return 0;
}
