Cod sursa(job #1711568)

Utilizator denniscrevusDennis Curti denniscrevus Data 31 mai 2016 18:17:04
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#define INF 9999999
#define GMAX 1005
#define WMAX 5005
#define MIN(a,b) (((a)<(b))?(a):(b))

using namespace std;

int d[GMAX][WMAX], i ,j, c[GMAX], e[GMAX], mn = 99999999, g1, w, cmax;

int main()
{
    ifstream f("energii.in");
    ofstream g("energii.out");
    f>>g1>>w;

    for(i=1;i<=g1;i++)
    {
        f>>e[i];
        f>>c[i];
        if(cmax<e[i])
            cmax=e[i];
    }

    for(i=0;i<=g1;i++)
        for(j=0; j<=w; j++)
            d[i][j] = INF;

    for(i=0;i<=g1;i++)
        d[i][0]=0;

    for(i=1;i<=g1;i++)
        for(j=1;j<=w;j++)
        {
         if(e[i]<=j)
            d[i][j] = MIN(d[i-1][j-e[i]]+c[i], d[i-1][j]);
        }

    for(i=1;i<=g1;i++)
        if(e[i]>w && c[i]<d[g1][w])
            d[g1][w]=c[i];

    if(d[g1][w]==INF)
        g<<-1;
    else
        g<<d[g1][w];
}