Cod sursa(job #3204078)

Utilizator andreisharkVirlan Andrei Cristian andreishark Data 15 februarie 2024 17:17:15
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#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;
}