Cod sursa(job #1987148)

Utilizator llalexandruLungu Alexandru Ioan llalexandru Data 29 mai 2017 20:51:30
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>
#define NM 1001

using namespace std;

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

struct obiect
{
    int v, g;
};

obiect V[NM];

int n, m, M[5001];


int main()
{
    int i, j;
    fin >> n >> m;
    for (i = 1; i <= n; i++)
    {
        fin >> V[i].g >> V[i].v;
    }
    for (i = 1; i <= n; i++)
    {
        for (j = m; 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]!=0 || j==V[i].g)) ? M[j - V[i].g]+V[i].v:M[j];
            }
        }
    }
    if (M[m]==0)
        fout<<-1;
    else
        fout<<M[m];
    return 0;
}