Cod sursa(job #1860761)

Utilizator sadpolkgigi becali smecher sadpolk Data 28 ianuarie 2017 12:55:28
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>

using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int d[100005];
int min(int a,int b)
{
    if(a>b)
        return b;
    return a;
}
int main()
{
    int i,g,w,c,e,j,last=0,mini=2000000000;
    in>>g>>w;
    for(i=1; i<=w+1; i++)
        d[i]=mini;
    d[0]=0;
    for(i=1; i<=g; ++i)
    {
        in>>e>>c;
        for(j=last; j>=0; --j)
        {

            if(j+e>w)
            {
                if(d[w+1]>d[j]+c)
                    d[w+1]=d[j]+c;
            }else
                {if(d[j]!=mini)
                if(d[j+e]>d[j]+c)
                {
                    d[j+e]=d[j]+c;
                }}
        }
        last=min(w,last+e);
    }
    if(d[w+1]<d[w]&&d[w+1]!=-1)
        out<<d[w+1];
    else out<<d[w];

    return 0;
}