Cod sursa(job #1467300)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 3 august 2015 10:58:32
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>

using namespace std;

ifstream fin("energii.in");
ofstream fout("energii.out");

int i, j, g, w, eg[1001], cg[1001];
int c[1001][5001], maxim, s;

int main()
{
    fin >> g >> w;

    for (i = 1; i <= g; i++)
    {
        fin >> eg[i] >> cg[i];
        s += cg[i];
    }

    for (i = 1; i <= g; i++)
        for (j = 1; j <= s; j++)
        {
            c[i][j] = c[i-1][j];
            if (cg[i] <= j) c[i][j] = max(c[i-1][j], c[i-1][j-cg[i]] + eg[i]);
            maxim = max(maxim, c[i][j]);
        }

    s = max(s, 5000);
    for (i = s; c[g][i-1] >= w; i--);
    fout << ((c[g][i] >= w) ? i : -1);
    return 0;
}