Cod sursa(job #2205686)

Utilizator armandpredaPreda Armand armandpreda Data 19 mai 2018 21:49:32
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>
#include <cstring>

using namespace std;

ifstream cin("energii.in");
ofstream cout("energii.out");

const int LIM = 20005, INF = 1e9;
int n, w, dp[LIM]; 

int main()
{
    for(int i = 1; i < LIM; ++i)
        dp[i] = INF;

    cin >> n >> w;
    while( n-- )
    {
        int e, c;
        cin >> e >> c;
        for(int i = w - 1; i >= 0; --i)
            dp[ i + e ] = min(dp[ i + e ], dp[i] + c);
    }
    
    int minim = INF;
    for(int i = w; i < LIM; ++i)
        minim = min(minim, dp[i]);

    if(minim == INF)
        cout << -1;
    else
        cout << minim;
    return 0;
}