Cod sursa(job #3201413)

Utilizator deerMohanu Dominic deer Data 7 februarie 2024 23:57:06
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <bits/stdc++.h>
const int SMAX = 15e3;
using namespace std;
ifstream fin ("energii.in");
ofstream fout ("energii.out");
int dp[SMAX + 5], n, W;
signed main(){
    fin >> n >> W;
    for (int i = 1; i <= SMAX; i++)
        dp[i] = INT_MAX;
    dp[0] = 0;
    for (int i = 1, a, b; i <= n; i++){
        fin >> a >> b;
        for (int j = SMAX - a; j >= 0; j--){
            if (dp[j] != INT_MAX)
                dp[j + a] = min(dp[j + a], dp[j] + b);
        }
    }
    int ans = *min_element(dp + W, dp + SMAX);
    fout << (ans == INT_MAX ? -1 : ans);
    return 0;
}