Cod sursa(job #3334775)

Utilizator parus_majorParus Major parus_major Data 19 ianuarie 2026 19:38:40
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>

using namespace std;

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

const int MAXN = 1002;
const int MAXW = 10002;

int N, W, E, C;
int sum;
int d[MAXW];

int main()
{
    fin >> N >> W;
    for (int i = 1; i <= W; ++i) {
        d[i] = 1000000;
    }

    for (int i = 0; i < N; ++i) {
        fin >> E >> C;
        sum += E;

        for (int j = W; j >= 0; --j) {
            int next = j + E;
            if (next > W) next = W;

            d[next] = min(d[next], d[j] + C);
        }
    }
    if (W > sum) {
        fout << "-1\n";
    } else {
        fout << d[W];
    }

    return 0;
}