Cod sursa(job #1028162)

Utilizator laurageorgescuLaura Georgescu laurageorgescu Data 13 noiembrie 2013 18:42:07
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<fstream>
#define M 2000000000
using namespace std;
int v[5001],c[5001],d[10001];
void init(int s)
{
    for (int i=1;i<=s;++i)
        d[i]=-1;
}
int main()
{
    ifstream in ("energii.in");
    ofstream out ("energii.out");
    int w,g,i,mn,s=0;
    in>>g>>w;
    for (i=0;i<g;++i)
        {
        in>>v[i]>>c[i];
        s+=v[i];
        }
    init(s);
    d[0]=0;
    for (int j=0;j<g;++j)
        for (i=s-v[j];i>-1;--i)
            if (d[i+v[j]]>d[i]+c[j] || (d[i+v[j]]==-1 && d[i]>-1))
                d[i+v[j]]=d[i]+c[j];
    mn=M;
    for (i=w;i<=s;++i)
        if (mn>d[i] && d[i]>0)
            mn=d[i];
    out<<mn<<'\n';
    in.close();
    out.close();
    return 0;
}