Cod sursa(job #1718240)

Utilizator denniscrevusDennis Curti denniscrevus Data 17 iunie 2016 04:44:38
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#define WMAX 5005
#define INF 9999999

using namespace std;

int d[2][WMAX],j,e,c,g,w,i,G,line,prev;

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

    f>>G>>w;

    for(i=1;i<=WMAX;i++)
    {
        d[0][i]=INF;
        d[1][i]=INF;
    }
    d[0][0]=0;
    d[1][0]=0;
    for(i=1;i<=G;i++)
    {
        f>>e>>c;
        line=(int)(i&1);
        prev=!line;
        d[line][i]=INF;
        for(j=0;j<=w;j++)
        {
            d[line][j]=d[prev][j];
            if(j-e>=0)
                d[line][j] = min(d[prev][j], d[prev][j-e]+c);
            else
                d[line][j]=min(d[line][j],c);
        }
    }
    if(d[G&1][w]>=INF)
        g<<"-1";
    else
        g<<d[G&1][w];
}