Pagini recente » Cod sursa (job #2630165) | Cod sursa (job #2954143) | Cod sursa (job #2954201) | Cod sursa (job #1059930) | Cod sursa (job #2882023)
#include <fstream>
#include <algorithm>
constexpr int NMAX = 5001;
constexpr int GMAX = 10001;
int N, G;
int W[NMAX], P[NMAX];
int dp[NMAX][GMAX];
int main()
{
std::ifstream in("rucsac.in");
in >> N >> G;
for (int i = 1; i <= N; ++i)
in >> W[i] >> P[i];
for (int i = 1; i <= N; ++i)
{
for (int g = 1; g <= G; ++g)
{
dp[i][g] = dp[i - 1][g];
if (W[i] <= g)
dp[i][g] = std::max(dp[i][g], dp[i - 1][g - W[i]] + P[i]);
}
}
std::ofstream out("ruscac.out");
out << dp[N][G];
}