Cod sursa(job #2771791)

Utilizator MihaiIonescuIonescu Andrei Mihai MihaiIonescu Data 29 august 2021 11:24:19
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int n, G, w[5001], p[5001], i, f[1000000], j, sol;
int main () {
    cin>>n>>G;
    for (i = 1;i <= n;i++) {
        cin>>w[i]>>p[i];
    }
    for (i = 1;i <= n;i++) {
        for (j = G;j >= 1;j--)
            if (f[j] != 0) { /// obtinusem suma j
                if (j + w[i] <= G && f[j + w[i]] < f[j] + p[i])
                    f[j + w[i]] = f[j] + p[i];
            }
        if (w[i] <= G && p[i] > f[w[i]])
            f[w[i]] = p[i];
    }

    for (i = 1;i <= G;i++)
        sol = max(sol, f[i]);
    cout<<sol;
}