Cod sursa(job #2602428)

Utilizator AokijiAlex M Aokiji Data 16 aprilie 2020 21:12:57
Problema Energii Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <iostream>
#include <fstream>
#include <cmath>
#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;
}