Pagini recente » Cod sursa (job #29031) | Cod sursa (job #800558) | Cod sursa (job #1049600) | Cod sursa (job #1105182) | Cod sursa (job #3204078)
#include <iostream>
#include <array>
#include <fstream>
int readAndCalculate(std::array<int, 10001>& prices, std::istream& stream, int n, int g) {
for (int item = 0; item < n; item++)
{
int price, weight;
stream >> weight >> price;
if (weight > g) continue;
for (int i = g; i >= weight; i--)
{
prices[i] = std::max(prices[i], prices[i - weight] + price);
}
}
return prices[g];
}
int main()
{
std::ifstream fin("rucsac.in");
std::ofstream fout("rucsac.out");
std::array<int, 10001> prices = {0};
int n, g;
fin >> n >> g;
int result = readAndCalculate(prices, fin, n, g);
fout << result;
}