Cod sursa(job #1987161)

Utilizator llalexandruLungu Alexandru Ioan llalexandru Data 29 mai 2017 21:02:31
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>
#define NM 1001
#define MAXN 10000

using namespace std;

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

struct obiect
{
    int v, g;
};

obiect V[NM];

int n, m, M[MAXN+5];


int main()
{
    int i, j, minim;
    fin >> n >> m;
    minim=MAXN;
    for (i = 1; i <= n; i++)
    {
        fin >> V[i].v >> V[i].g;
    }
    for (i = 1; i <= n; i++)
    {
        for (j = minim; j >= 0; j--)
        {
            if (j >= V[i].g)
            {
                M[j] = (M[j] < M[j - V[i].g] + V[i].v) ? M[j - V[i].g]+V[i].v:M[j];
                if (M[j]==m && j<minim)
                    minim=j;

            }
        }
    }
    if (minim==MAXN)
        fout<<-1;
    else
        fout<<minim;
    return 0;
}