Cod sursa(job #3204011)

Utilizator not_anduAndu Scheusan not_andu Data 15 februarie 2024 12:54:47
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>

using namespace std;

#define INFILE "energii.in"
#define OUTFILE "energii.out"

const int N_MAX = 15e3;
const int INF = 1e9;

int n, target;
int dp[N_MAX + 3];

void solve(){

    cin >> n >> target;

    for(int i = 1; i <= N_MAX; ++i) dp[i] = INF;

    dp[0] = 0;
    for(int i = 1; i <= n; ++i){
        int a, b; cin >> a >> b;
        for(int energy = N_MAX - a; energy >= 0; --energy){
            if(dp[energy] != INF){
                dp[energy + a] = min(dp[energy + a], dp[energy] + b);
            }
        }
    }

    int ans = *min_element(dp + target, dp + N_MAX);

    cout << (ans == INF ? -1 : ans) << '\n';

}

int main(){
    ios_base::sync_with_stdio(false);
    freopen(INFILE, "r", stdin);
    freopen(OUTFILE, "w", stdout);
    cin.tie(0), cout.tie(0);
    solve();
    return 0;
}