Cod sursa(job #2808067)

Utilizator acostin643costin andrei acostin643 Data 24 noiembrie 2021 15:45:34
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <limits.h>
using namespace std;

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

int d[50005];

int main()
{
    int G, W, e, c, mn = INT_MAX;
    fin >> G >> W;
    for(int i = 1; i <= 50005; i++)
        d[i] = -1;
    for(int i = 1; i <= G; i++)
    {
        fin >> e >> c;
        for(int j = W; j >= W - e; j--)
            if(d[j] != -1 && d[j] + c < mn)
                mn = d[j] + c;
        for(int j = W - e - 1; j >= 0; j--)
        {
            if(d[j] != -1 && (d[j + e] == -1 || d[j + e] > d[j] + c))
                d[j + e] = d[j] + c;
        }
    }
    if(mn == INT_MAX)
        fout << "-1";
    else fout << mn;
    return 0;
}