Cod sursa(job #2515081)

Utilizator NashikAndrei Feodorov Nashik Data 27 decembrie 2019 19:13:56
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
//#include <iostream>
#include <fstream>
using namespace std;
int n,k,minim=9999999;
pair<int,int> v[1005];
long long ruc[150005],cost[15005];
int main()
{
    ifstream cin("energii.in");
    ofstream cout("energii.out");
    cin>>n>>k;
    for(int i=1;i<=n;i++){
        cin>>v[i].first>>v[i].second;
    }
    for(int i=1;i<=15000;i++)
        cost[i]=999999999;
    for(int i=1;i<=n;i++){
        for(int j=15000;j>=0;j--){
            if(j+v[i].first>15000)
                continue;
            cost[j+v[i].first]=min(cost[j+v[i].first],cost[j]+v[i].second);
        }
    }
    for(int i=k;i<=15000;i++){
        if(cost[i]!=0){
            if(minim>cost[i])
                minim=cost[i];
        }
    }
    //for(int i=0;i<=20;i++)
      //  cout<<i<<" "<<cost[i]<<"\n";
    if(minim==9999999)
        cout<<-1;
    else
        cout<<minim;
    return 0;
}