Cod sursa(job #3159790)

Utilizator MihaiZ777MihaiZ MihaiZ777 Data 22 octombrie 2023 00:25:44
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>
using namespace std;

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

const int INF = 0x3f3f3f3f, MAXVAL = 20005;
int minCost[MAXVAL + 5];
int genNum, reqEnergy;

void InitMinCost() {
    for (int i = 1; i <= MAXVAL; i++) {
        minCost[i] = INF;
    }
}

int main() {
    fin >> genNum >> reqEnergy;
    
    int bestCost = INF;
    InitMinCost();

    for (int i = 1; i <= genNum; i++) {
        int energy, cost;
        fin >> energy >> cost;

        for (int j = MAXVAL; j >= energy; j--) {
            minCost[j] = min(minCost[j], minCost[j - energy] + cost);

            if (j >= reqEnergy) {
                bestCost = min(bestCost, minCost[j]);
            }   
        }
    }

    if (bestCost == INF) {
        bestCost = -1;
    }
    fout << bestCost;

    return 0;
}