Cod sursa(job #1334040)

Utilizator iuliiaioanaiulia ioana anghel iuliiaioana Data 3 februarie 2015 20:35:41
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#define maxim 1e9
#define maximg 10002

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

int G,w,cmin;
int e[maximg], c[maximg], d[maximg/2];

int main ()
{   f>>G>>w;
    for (int i=1; i<=G; i++)
        f>>e[i]>>c[i];

    for(int i=1; i<=w; i++)
            d[i]=maxim;

    for (int i=1; i<=G; i++)
        for (int energie=w; energie>=0; --energie)
            if (energie >= e[i]) {
                if(d[energie] > d[energie-e[i]]+c[i]) d[energie]=d[energie-e[i]]+c[i]; }
        else d[energie]=min(d[energie], c[i]);

    if (d[w]!=maxim) g<<d[w];
        else g<<"-1";
    return 0;
}