Cod sursa(job #2050064)

Utilizator skeniaTirla Ovidiu skenia Data 27 octombrie 2017 22:12:47
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <iostream>
#include <fstream>

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

int length, necessary, dynamicCost[5005];

void print();

int main() {
    for (int &i : dynamicCost) {
        i = 1002004;
    }
    fin >> length >> necessary;
    for (int iter = 0; iter < length; ++iter) {
        int energy, cost;
        fin >> energy >> cost;
        for (int i = necessary - energy; i > 0; --i) {
            dynamicCost[i + energy] = min(dynamicCost[i + energy], dynamicCost[i] + cost);
        }
        dynamicCost[energy] = min(dynamicCost[energy], cost);
    }
//    for (int i = 0; i <= 100; ++i) {
//        cout << i << ' ' << dynamicCost[i] << '\n';
//    }
    print();
    return 0;
}

void print() {
    for (int iter = 5002; iter >= necessary; iter--) {
        if (dynamicCost[iter] != 1002004) {
            fout << dynamicCost[iter] << '\n';
            return;
        }
    }
    fout<<"-1";
}