Pagini recente » Cod sursa (job #1293909) | Cod sursa (job #1530839) | Monitorul de evaluare | Cod sursa (job #2540948) | Cod sursa (job #1274969)
#include <fstream>
using namespace std;
ifstream is ("rucsac.in");
ofstream os ("rucsac.out");
int N, G, v[10007], g[10007];
int lc = 1, lp;
int D[2][10007];
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();
}