Cod sursa(job #2205790)

Utilizator lucaperjuLuca Perju Verzotti lucaperju Data 20 mai 2018 12:24:22
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>

using namespace std;
ifstream in ("energii.in");
ofstream out ("energii.out");
int d[5010];
int main()
{
    int n,w,j,i,e,c;
    in>>n>>w;
    for(i=1;i<=n;i++)
    {
        in>>e>>c;
        for(j=w-1;j>=1;j--)
        {
            if(d[j])
            {
                if(j+e<=w)
                {
                    if(d[j+e])
                        d[j+e]=min(d[j+e],d[j]+c);
                    else
                        d[j+e]=d[j]+c;
                }
                else
                {
                    if(d[w+2])
                        d[w+2]=min(d[w+2],d[j]+c);
                    else
                        d[w+2]=d[j]+c;
                }
            }
        }
        if(d[e])
            d[e]=min(d[e],c);
        else
            d[e]=c;
    }
    int mn=999999999;
    for(j=w+2;j>=w;j--)
    {
        if(d[e] && d[e]<mn)
            mn=d[e];
    }
    out<<mn;
    return 0;
}