Cod sursa(job #2355438)

Utilizator serafimalex2001Serafim Alex serafimalex2001 Data 26 februarie 2019 08:52:44
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <set>
using namespace std;

ifstream fin("energii.in");
ofstream fout("energii.out");

int a[1005][10005],n,E,g[100005],c[100005];

set<int, greater<int> > S;

void Citire()
{
    set<int, greater<int> >::iterator it;
    int i,j,emax=0,w,minim=10000005;
    for(i=1; i<=1004; ++i)
        for(j=1; j<=10004; ++j)
            a[i][j]=100005;
    fin>>n>>E;
    for(i=1; i<=n; ++i)
    {
        fin>>g[i]>>c[i];
        a[i][g[i]]= min(c[i],a[i-1][g[i]]);
        S.insert(g[i]);
        for(it=S.begin(); it!=S.end(); ++it)
        {
            w=*it;
            a[i][w+g[i]]=min( a[i-1][w+g[i]], a[i-1][w]+c[i] );
        }
        for(it=S.begin(); it!=S.end(); ++it)
        {
            w=*it;
            S.insert(w+g[i]);
        }
    }
    for(i=E; i<=10004; ++i)
        minim=min(minim,a[n][i]);
    fout<<minim;

}

int main()
{
    Citire();
    return 0;
}