Cod sursa(job #3320938)

Utilizator andrei_r4duAndrei Radu andrei_r4du Data 7 noiembrie 2025 18:27:21
Problema Energii Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
const int inf=1e8;
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,inf);
    b[0]=0;
    for(int i=0; i<ng; i++){
        for(int j=en; j>=0; j--){
            if(b[j]!=inf){
                if(j+a[i].e<=en){
                    b[j+a[i].e]=min(b[j+a[i].e], b[j]+a[i].c);
                }
            }
        }
    }
    int mn=inf;
    int eng=0;
    bool bl=false;
        for(int i=5000; i>=en; i--){
            if(mn>b[i]){
                mn=b[i];
                eng=i;
                bl=true;
            }
        }
    if(bl==false){
        cout<<-1;
    } else{

        cout<<mn;
    }
}