Cod sursa(job #3308655)

Utilizator PatrikKev75Szucs Patrik - Kevin PatrikKev75 Data 27 august 2025 00:31:12
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
// 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 >> w[i] >> p[i];
    }
    in.close();

    short dp[n + 1][g + 1]{};
    for (int i = 1; i <= n; i++)
    {
        for (int j = g; w[i - 1] <= j; j--)
        {
            dp[i][j] = (dp[i - 1][j] > dp[i - 1][j - w[i - 1]] + p[i - 1]) ? dp[i - 1][j] : dp[i - 1][j - w[i - 1]] + p[i - 1];
        }
    }

    std::ofstream out("rucsac.out");
    out << dp[n][g] << '\n';
    for (auto &rows : dp)
    {
        for (auto &elem : rows)
        {
            out << elem << " ";
        }
        out << '\n';
    }

    out.close();
    return 0;
}