Pagini recente » Cod sursa (job #3332853) | Cod sursa (job #2105418) | Cod sursa (job #526654) | Cod sursa (job #2105884) | Cod sursa (job #3308592)
// https://infoarena.ro/problema/rucsac - Szücs Patrik - Kevin
#include <fstream>
#include <algorithm>
int main()
{
short n, g;
std::ifstream in("rucsac.in");
in >> n >> g;
short p[n], w[n];
for (int i = 0; i < n; i++)
{
in >> p[i] >> w[i];
}
in.close();
short dp[n][g]{};
for (int i = 1; i < n; i++)
{
for (int j = 1; j < g; j++)
{
if (w[i] > j)
{
dp[i][j] = dp[i - 1][j];
}
else
{
dp[i][j] = std::max(dp[i - 1][j - w[i]] + p[i], dp[i - 1][j]);
}
}
}
std::ofstream out("rucsac.out");
out << dp[n - 1][g - 1];
out.close();
return 0;
}