Cod sursa(job #1274994)

Utilizator japjappedulapPotra Vlad japjappedulap Data 24 noiembrie 2014 17:21:35
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <fstream>
using namespace std;

ifstream is ("rucsac.in");
ofstream os ("rucsac.out");

int N, G, v[5001], g[5001];
int sol;
int D[10005];

int main()
{
    is >> N >> G;
    for (int i = 1; i <= N; ++i)
        is >> g[i] >> v[i];
    for (int i = 1; i <= G; ++i)
        D[i] = -1;
    for (int i = 1; i <= N; ++i)
        for (int j = G-g[i]; j >= 0; --j)
            if (D[j] >= 0 && D[j+g[i]] < D[j]+v[i])
                D[j+g[i]] = D[j] + v[i], sol = max(D[j+g[i]], sol);
    os << sol;
    is.close();
    os.close();
}