Cod sursa(job #2650194)

Utilizator GligarEsterabadeyan Hadi Gligar Data 17 septembrie 2020 18:01:08
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>

using namespace std;

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

const int nmax=1000, xmax=10000;

int v[nmax+1], d[xmax+1], c[nmax+1];

int main(){
    int n,s;
    fin>>n>>s;
    for(int i=1;i<=n;i++){
        fin>>v[i]>>c[i];
    }
    for(int i=1;i<=xmax;i++){
        d[i]=nmax*xmax+1;
    }
    for(int i=1;i<=n;i++){
        for(int j=xmax-v[i];j>=0;j--){
            if(d[j+v[i]]>d[j]+c[i]){
                d[j+v[i]]=d[j]+c[i];
            }
        }
    }
    int sol=nmax*xmax+1;
    for(int i=s;i<=xmax;i++){
        if(d[i]<sol){
            sol=d[i];
        }
    }
    if(sol<nmax*xmax+1){
        fout<<sol<<"\n";
    }else{
        fout<<-1;
    }
    return 0;
}