Cod sursa(job #3168050)

Utilizator AdrianRosuRosu Adrian Andrei AdrianRosu Data 11 noiembrie 2023 14:37:57
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>
#define DIM 1001
#define MOD 30013
#define INF 1e9
#define MAX_VAL 15001

using namespace std;

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

int dp[MAX_VAL + 10];

pair <int, int> v[DIM];

int n, i, j, needed, answer = INF;

int main(){

    fin >> n >> needed;

    for(i=1;i<=n;i++)
        fin >> v[i].first >> v[i].second;

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

    for(i=1;i<=n;i++){

        for(j=0;j<=MAX_VAL;j++){

            if(dp[j] != INF)

                dp[j + v[i].first] = min(dp[j + v[i].first], dp[j] + v[i].second);


        }

    }

    for(i=needed;i<=MAX_VAL;i++)
        answer = min(answer, dp[i]);

    if(answer != INF)
        fout << answer << "\n";
    else fout << "-1\n";

}