Cod sursa(job #1860747)

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

using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int d[100005];
int main()
{
    int i,g,w,c,e,j,last=0;
    in>>g>>w;
    for(i=1; i<=w+1; i++)
        d[i]=-1;
    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]!=-1)
                if(d[j+e]<d[j]+c)
                {
                    d[j+e]=d[j]+c;
                    if(j+e>last)
                        last=j+e;
                }}
        }
    }
    if(d[w+1]<d[w]&&d[w+1]!=-1)
        out<<d[w+1];
    else out<<d[w];

    return 0;
}