Cod sursa(job #873984)

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

ifstream f("energii.in");
ofstream g("energii.out");

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

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

    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]>G)
                    if(minim>cost[j]+c[i])
                        minim=cost[j]+c[i];
                if (j+e[i]<=W)
                    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)
    g<<-1;
    else
    g<<minim;
    return 0;
}