Cod sursa(job #2394677)

Utilizator eduardcadarCadar Eduard eduardcadar Data 1 aprilie 2019 19:53:06
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int n, G, w[5001], p[5001], gr[10001], v[10001];
int main()
{
    f >> n >> G;
    for (int i = 1; i <= n; ++i) f >> w[i] >> p[i];
    for (int i = 1; i <= n; ++i) {
        int j;
        for (j = G; j > w[i]; --j)
            if (gr[j - w[i]]) {
                if (v[j - w[i]] + p[i] > v[j]) {
                    gr[j] = i;
                    v[j] = v[j-w[i]] + p[i];
                }
            }
        if (p[i] > v[j]) {
            gr[j] = i;
            v[j] = p[i];
        }
    }
    g << v[G] << endl;
    return 0;
}