Pagini recente » Cod sursa (job #849855) | Cod sursa (job #2562928) | Cod sursa (job #2129446) | Cod sursa (job #2813085) | Cod sursa (job #1274968)
#include <fstream>
using namespace std;
ifstream is ("rucsac.in");
ofstream os ("rucsac.out");
int N, G, v[1000], g[1000];
int lc = 1, lp;
int D[2][1000];
int main()
{
is >> N >> G;
for (int i = 1; i <= N; ++i)
is >> g[i] >> v[i];
for (int i = 1; i <= N; ++i, lc = !lc, lp = !lp)
{
for (int j = 0; j <= G; ++j)
if (j >= g[i])
D[lc][j] = max(D[lp][j-g[i]] + v[i], D[lp][j]);
else
D[lc][j] = D[lp][j];
}
os << D[lp][G];
is.close();
os.close();
}