Cod sursa(job #3356209)

Utilizator veronica_stanciuStanciu Veronica veronica_stanciu Data 30 mai 2026 13:17:09
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <fstream>
#include <vector>

using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");

int e[10001], c[10001];
vector<int> cost(50000005, 10000005);
int main()
{
    int g, w, smax, mini=10000005;
    cin>>g>>w;
    for(int i=1; i<=g; i++)
        cin>>e[i]>>c[i];
    cost[0]=0;
    smax=0;
    for(int i=1; i<=g; i++){
        for(int j=smax; j>=0; j--)
            if(cost[j]!=10000005 && j+e[i]<=50000005){
                //cout<<" cost[j] initial: "<<cost[j];
                if(cost[j]+c[i]<cost[j+e[i]]){
                    cost[j+e[i]]=cost[j]+c[i];
                    if(cost[j+e[i]]<mini && j+e[i]>=w)
                        mini=cost[j+e[i]];
                }
                //cout<<" cost[j] schimbat: "<<cost[j+e[i]]<<endl;
            }
        smax+=e[i];
    }
    /*
    cout<<"smax: "<<smax<<endl;
    for(int i=0; i<=smax; i++)
        cout<<i<<" "<<cost[i]<<endl;
        */
    if(mini!=10000005)
        cout<<mini;
    else
        cout<<-1;
    return 0;
}