Cod sursa(job #2359979)

Utilizator ikogamesIon Ceaun ikogames Data 1 martie 2019 11:12:05
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <bits/stdc++.h>

using namespace std;

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

int n, E, c[1002], v[1002], s, s2;
int dp[1001][20000], mnn;

void Read()
{
    fin >> n >> E;

    for(int i = 1; i <= n; i++)
    {
        fin >> v[i] >> c[i];
        s += v[i];
        s2 += c[i];
        mnn = min(c[i], mnn);
    }
    if( s < E)
    {
        fout << "-1\n";
        exit(0);
    }
    if(s == E)
    {
        fout << s2 << "\n";
        exit(0);
    }
}

void Solve()
{
    for(int i=0;i <= E;i++)
        dp[1][i]=1000000;
    for(int i=2;i<=n;i++)
    {
        for(int j = 1; j <= E; j++)
            if(j >= v[i])
                dp[i][j]=min(dp[i - 1][j], dp[i - 1][j - v[i]] + c[i]);
        else dp[i][j] = min(dp[i - 1][j], c[i]);
    }
    fout << dp[n][E];
}

int main()
{
    Read();
    Solve();
    return 0;
}