Cod sursa(job #2589392)

Utilizator RobertLearnsCDragomir Robert. RobertLearnsC Data 26 martie 2020 11:54:01
Problema Energii Scor 75
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
/** Complexitate
O(10000 * G)
**/
#include <bits/stdc++.h>

using namespace std;

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

struct generator {
    long long energy, cost;
};

long long used[10001], n, energyToRefill;

int main()
{
    in >> n >> energyToRefill;
    for(int i = 1; i <= 10000; i++) {
        used[i] = 1e9;
    }

    long long minCost = 1e9;
    for(int i = 1; i <= n; i++) {
        generator a;
        in >> a.energy >> a.cost;

        for(int j = 1e4; j >= a.energy; j--) {
            if(j - a.energy >= 0) {
                if(used[j - a.energy] != 1e9) {
                    used[j] = min(used[j], used[j - a.energy] + a.cost);
                }
                if(j >= energyToRefill) {
                    minCost = min(minCost, used[j]);
                }
            }
        }
    }
    minCost = minCost == 1e9? -1 : minCost;
    out << minCost;
    return 0;
}