Cod sursa(job #3323205)

Utilizator BuzdiBuzdugan Rares Andrei Buzdi Data 17 noiembrie 2025 17:29:28
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>

#define ll long long
#define cin fin
#define cout fout

using namespace std;

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

const int WMAX = 20000;
const int INF = 1e9;

int n, w, answer;
int dp[WMAX + 1];

int main() {
    cin >> n >> w;
    fill(dp + 1, dp + WMAX + 1, INF);
    for(int i = 1; i <= n; i++) {
        int w_here, c;
        cin >> w_here >> c;
        for(int j = WMAX; j >= w_here; j--) {
            dp[j] = min(dp[j], dp[j - w_here] + c);
        }
    }
    answer = INF;
    for(int i = w; i <= WMAX; i++) {
        answer = min(answer, dp[i]);
    }
    cout << (answer == INF ? -1 : answer) << '\n';
    return 0;
}