Pagini recente » Cod sursa (job #2667406) | Cod sursa (job #2293250) | Cod sursa (job #2768233) | Cod sursa (job #1521308) | Cod sursa (job #1383819)
#include <fstream>
#include <cstring>
#define MINF 0x80808080
using namespace std;
int g[5010], c[5010];
int d[10010];
int n, G, i, jnext, sol, pmaxim, j;
int main() {
ifstream fin ("rucsac.in");
ofstream fout("rucsac.out");
fin>>n>>G;
for (i=1;i<=n;i++)
fin>>g[i]>>c[i];
memset(d, 0x80, sizeof(d));
// fout<<d[1];
d[0] = 0;
pmaxim = 0;
for (i=1;i<=n;i++) {
for (j=pmaxim; j>=0;j--) {
if (d[j] != MINF) {
jnext = j + g[i];
if (jnext <= G) {
d[jnext] = max(d[jnext], d[j] + c[i]);
sol = max(sol, d[jnext]);
pmaxim = max(pmaxim, jnext);
}
}
}
}
fout<<sol;
return 0;
}