Cod sursa(job #2868302)

Utilizator cdenisCovei Denis cdenis Data 10 martie 2022 20:55:11
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

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

const int MAX=1005;
const int MAXen=20005;
const int INF=2e9;
int n,en,dp[MAXen],cnt,cost=INF;
struct T
{
    int en,cost;
}v[MAX];

int main()
{
    fin >> n >> en;
    for(int i=1;i<=n;i++)
    {
        fin >> v[i].en >> v[i].cost;
        cnt+=v[i].en;
    }
    if(cnt<en)
    {
        fout << -1;
        return 0;
    }
    for(int j=1;j<MAXen;j++)
        dp[j]=INF;
    for(int i=1;i<=n;i++)
        for(int j=MAXen-1;j>=v[i].en;j--)
            if(dp[j-v[i].en]!=INF)
                dp[j]=min(dp[j],dp[j-v[i].en]+v[i].cost);
    for(int i=en;i<MAXen;i++)
        cost=min(cost,dp[i]);
    fout << cost;
    return 0;
}