Cod sursa(job #1502292)

Utilizator RaduMirceaAndreiRadu Mircea Andrei RaduMirceaAndrei Data 14 octombrie 2015 15:45:14
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
# include <fstream>
# define INF 5001
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int f[5002],e[1002],s,c[1002],n,lim,i,sf,j,minim,sol,next;
int main () {
    fin>>n>>lim;
    for(i=1;i<=n;i++){
        fin>>e[i]>>c[i];
        s=s+e[i];
    }
    for(i=1;i<=s;i++){
        f[i]=INF;
    }
    f[0]=0;
    sol=INF;
    for(i=1;i<=n;i++){
        for(j=lim-1;j>=0;j--){
            if(f[j]!=INF){
                next = j+e[i];
                if (next > lim)
                    next = lim;
                f[next]=min(f[next],f[j]+c[i]);
                if(next == lim){
                    sol=min(sol,f[lim]);
                }
            }
        }
    }
    fout<<sol;
    fin.close();
    fout.close();
    return 0;
}