Cod sursa(job #2909104)

Utilizator Alex_HossuHossu Alexandru Alex_Hossu Data 9 iunie 2022 13:06:42
Problema Problema rucsacului Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#include <fstream>

int greutate[5001];
int valoare[5001];

int dp[10001][5001];

int main() {
    int N, G;
    int i, j;

    std::ifstream fin("rucsac.in");

    fin >> N >> G;
    for (i = 1; i <= N; i++) {
        fin >> greutate[i];
        fin >> valoare[i];
    }

    fin.close();

    for (i = 1; i <= N; i++)
        for (j = 1; j <= G; j++) {
            if (greutate[i] <= j)
                dp[j][i] = std::max(valoare[i] + dp[j - greutate[i]][i - 1], dp[j][i - 1]);
            else
                dp[j][i] = dp[j][i - 1];
        }

    std::ofstream fout("rucsac.out");
    fout << dp[G][N];
    fout.close();

    return 0;
}