Cod sursa(job #873970)

Utilizator bratiefanutBratie Fanut bratiefanut Data 7 februarie 2013 19:45:08
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
using namespace std;

ifstream cin("energii.in");
ofstream cout("energii.out");

int N, W, e[5001],c[5001], v[1001],G, cost[5001],minim=0;

int main()
{ int i,j,k;
    cin>>G>>W;
    for(i=1;i<=G;i++)
    cin>>e[i]>>c[i];

    for(j=1;j<=W;++j)
    cost[j]=-1; cost[0]=0;

    for (i=1; i<=G; ++i)
        for (j=W; j>=0; --j)
            if (cost[j] != -1)
            {
                if (j + e[i] > W)
                    if (minim > cost[j] + c[i])
                        minim = cost[j] + c[i];
                if (j + v[i] <= G)
                    if (cost[j + e[i]] > cost[j] + c[i] || cost[j + e[i]] == -1)
                        cost[j + e[i]] = cost[j] + c[i];
            }
    if(c[W]==-1 || minim==0)
    cout<<-1;
    else
    cout<<minim;
    return 0;
}