Pagini recente » Cod sursa (job #1739339) | Cod sursa (job #2970842) | Cod sursa (job #2950669) | Cod sursa (job #117421) | Cod sursa (job #1428446)
#include <stdio.h>
const int MAX_G = 10000;
const char *fi = "rucsac.in";
const char *fo = "rucsac.out";
int N,G, sol[2][MAX_G + 1];
inline int MAX (int a, int b) { return (a > b) ? a : b; }
int main(int argc, const char * argv[]) {
freopen (fi, "r", stdin);
freopen (fo, "w", stdout);
int w,p,l = 0;
scanf("%d%d",&N,&G);
for (int i=1; i <= N; ++i, l = 1 - l) {
scanf("%d%d",&w,&p);
for (int j = 1; j <= G; ++ j) {
if (j < w)
sol[1 - l][j] = sol[l][j];
else
sol[1 - l][j] = MAX (sol[l][j], sol[l][j - w] + p);
}
}
printf("%d\n",sol[l][G]);
return 0;
}