Pagini recente » Cod sursa (job #2233987) | Cod sursa (job #1615870) | Cod sursa (job #1120115) | Cod sursa (job #2651843) | Cod sursa (job #1897124)
#include <fstream>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
#define NMAX 5001
#define GMAX 10001
int n, Gmax, G[NMAX], val[NMAX] ,vmax[2][GMAX];
int main()
{
int i, g, a, b;
in>>n>>Gmax;
for(i = 1; i <= n; i++)
in>>G[i]>>val[i];
a = 0;
for(i = 1; i <= n; i++) {
b = 1 - a;
for(g = 1; g <= Gmax; g++) {
vmax[b][g] = vmax[a][g];
if(G[i] <= g && vmax[b][g] < vmax[a][g - G[i]] + val[i])
vmax[b][g] = vmax[a][g - G[i]] + val[i];
}
a = b;
}
out<<vmax[b][Gmax];
return 0;
}