Cod sursa(job #2205036)

Utilizator DordeDorde Matei Dorde Data 17 mai 2018 18:50:56
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <algorithm>
using namespace std;
int const NM = 15007;
char const in [] = "energii.in";
char const out [] = "energii.out";
ifstream cin (in);
ofstream cout (out);
int dp [NM] , sol = (1 << 30);
int main()
{
    int n , i , j , a , b , k , from = 0;
    cin >> n >> k;
    for(i = 1 ; i <= n ; ++ i)
    {
        cin >> a >> b;
        for(j = from ; j >= 1 ; -- j)
            if(dp [j])
                dp [j + a] = min (dp [j + a] , dp [j] + b);
        from = min (k , from + a);
        if(! dp [a])
            dp [a] = b;
        else
            dp [a] = min (dp [a] , b);
    }
    for(i = k ; i <= NM ; ++ i)
        if(dp [i])
            sol = min (sol , dp [i]);
    cout << sol << '\n';
    return 0;
}