Cod sursa(job #1379433)

Utilizator oprea1si2si3Oprea Sebastian oprea1si2si3 Data 6 martie 2015 17:52:17
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<fstream>
using namespace std;

const int kNMax = 5005, kGMax = 10005;
int n, g, greutate[kNMax], pret[kNMax], optim[kGMax], sol;

void Citire() {
    ifstream in("rucsac.in");
    in >> n >> g;
    for (int i = 1; i <= n; ++i)
        in >> greutate[i] >> pret[i];
    in.close();
}

void Solve() {
    for (int i = 1; i <= n; ++i)
        for (int j = g - greutate[i]; j >= 0 ; --j)
            if (optim[j + greutate[i]] < optim[j] + pret[i]) {
                optim[j + greutate[i]] = optim[j] + pret[i];
                sol = max(sol, optim[j + greutate[i]]);
            }
}

void Afisare() {
    ofstream out("rucsac.out");
    out << sol << '\n';
    out.close();
}

int main() {
    Citire();
    Solve();
    Afisare();
    return 0;
}