Cod sursa(job #2442589)

Utilizator IoanaDraganescuIoana Draganescu IoanaDraganescu Data 24 iulie 2019 14:06:23
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int inf = 0x3f3f3f3f, enmax = 10000;

int n, w, cost[1005], en[1005], d[10005];

int main(){
    fin >> n >> w;
    for (int i = 1; i <= n; i++)
        fin >> en[i] >> cost[i];
    for (int i = 1; i <= enmax; i++)
        d[i] = inf;
    int cmin = inf;
    for (int i = 1; i <= n; i++)
        for (int j = enmax; j >= 1; j--){
            if (j - en[i] >= 0)
                d[j] = min(d[j], min(d[j - en[i]] + cost[i], inf));
            if (j >= w)
                cmin = min(cmin, d[j]);
        }
    if (cmin == inf)
        cmin = -1;
    fout << cmin << '\n';
    return 0;
}