Cod sursa(job #1446542)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 2 iunie 2015 09:38:45
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
#define inf (1 << 30)
using namespace std;

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

long long n, g, maxim = -inf, i, j;
long long o[10001];
int gr[5001], cst[5001];

int main()
{
    fin >> n >> g;
    for (i = 1; i <= n; i++)
        fin >> gr[i] >> cst[i];

    for (i = 1; i <= n; i++)
        for (j = g-gr[i]; j >= 0; j--)
            if (o[j+gr[i]] < o[j] + cst[i])
            {
                o[j+gr[i]] = o[j] + cst[i];
                if (maxim < o[j+gr[i]])
                    maxim = o[j+gr[i]];
            }
    if (maxim >= inf)
        fout << -1;
    else
        fout << maxim;
    return 0;
}