Cod sursa(job #1842609)

Utilizator GoogalAbabei Daniel Googal Data 7 ianuarie 2017 12:21:24
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
#define gmax 1001
#define wmax 5001

using namespace std;

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

struct generatoare
{
    int en,cost;
};

generatoare v[gmax];
int g,w,d[wmax],minn=-1;

int main()
{
    int i,j;
    d[0]=0;
    fin>>g>>w;
    for(i=1; i<=w-1; i++)
        d[i]=-1;
    for(i=1; i<=g; i++)
    {
        fin>>v[i].en>>v[i].cost;
        for(j=w-1; j>=0; j--)
            if(d[j]!=-1)
                if(j+v[i].en>=w)
                    {
                        if(minn==-1)
                            minn=d[j]+v[i].cost;
                        else
                            minn=min(minn,d[j]+v[i].cost);
                    }
                else if(d[j+v[i].en]==-1 || d[j+v[i].en]>d[j]+v[i].cost)
                    d[j+v[i].en]=d[j]+v[i].cost;
    }
    fout<<minn;
    fin.close();
    fout.close();
    return 0;
}