Cod sursa(job #3320930)

Utilizator andrei_r4duAndrei Radu andrei_r4du Data 7 noiembrie 2025 18:19:59
Problema Energii Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
    ifstream cin("energii.in");
    ofstream cout("energii.out");
    int ng, en;
    cin>>ng>>en;
    struct ener{
        int e;
        int c;
    };
    vector <ener>a(ng);
    for(int i=0; i<ng;i++){
        cin>>a[i].e>>a[i].c;
    }
    vector <int>b(5001,10001);
    b[0]=0;
    for(int i=0; i<ng; i++){
        for(int j=en; j>=0; j--){
            if(b[j]!=10001){
                if(j+a[i].e<=en){
                    b[j+a[i].e]=min(b[j+a[i].e], b[j]+a[i].c);
                }
            }
        }
    }
    int mn=10001;
    int eng=0;
        for(int i=5000; i>=en; i--){
            if(mn>=b[i]){
                mn=b[i];
                eng=i;
            }
        }
    if(b[en]==10001){
        cout<<-1;
    } else{

        cout<<mn;
    }
}