Cod sursa(job #2615536)

Utilizator Andrei012Trache Andrei Andrei012 Data 14 mai 2020 19:12:03
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;
int dp[4000001];
int main()
{

    ifstream cin("energii.in");
    ofstream cout("energii.out");
    int i,j,n,e,emax,c;
    cin>>n>>emax;
    for(i=1;i<=emax;++i)
        dp[i]=99999999;
    for(i=1;i<=n;++i){
        cin>>e>>c;
        for(j=emax-1;j>=1;--j){
            if(e+j>emax){
                if(c+dp[j]<dp[emax])
                    dp[emax]=c+dp[j];
            }
            else
                if(c+dp[j]<dp[j+e])
                    dp[j+e]=c+dp[j];
        }
        if(c<dp[e])
            dp[e]=c;
    }
    if(dp[emax]!=99999999)
        cout<<dp[emax];
    else
        cout<<-1;
    return 0;
}