Cod sursa(job #3356243)

Utilizator ana.petrePetre Ana-Sonia ana.petre Data 30 mai 2026 13:53:52
Problema Energii Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>

using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
struct ana{
long long c;
int e;
}v[1002], car[15002];
int main()
{
    int n, w, i,j, smax;
    long long mini;
    smax=0;
    cin>>n>>w;
    for(i=1;i<=15000;i++)
        car[i].c=10000001;
    car[0].e=1;
    for(i=1;i<=n;i++)
    {
        cin>>v[i].e>>v[i].c;
        for(j=smax;j>=0;j--)
            if(car[j].e==1&&j+v[i].e<=15000)
            {
                car[j+v[i].e].e=1;
                if(car[j].c==10000001)
                    car[j+v[i].e].c=v[i].c;
                else
                    car[j+v[i].e].c=v[i].c+car[j].c;
            }
        if(smax+v[i].e<=15000)
        smax+=v[i].e;
        else smax=15000;
    }
    mini=10000001;
    for(i=1;i<=smax;i++)
        if(car[i].e==1&&i>=w) if(car[i].c<mini) mini=car[i].c;
    if(mini==10000001) cout<<"-1";
    else
        cout<<mini;
    return 0;
}