Cod sursa(job #2695281)

Utilizator pielevladutPiele Vladut Stefan pielevladut Data 12 ianuarie 2021 12:57:08
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>

#define int long long

using namespace std;

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

struct elem{
    int energie;
    int cost;
};

int n, m;

elem v[1002];

int dp[5002];

/// dp[i] => costul minim atunci cand folosesc i cantitati de energie

int32_t main()
{
    fin >> n >> m;
    for(int i = 1; i <= n; i ++)
    {
        fin >> v[i].energie;
        cin >> v[i].cost;
    }
    for(int i = 1; i <= m; i ++)
    {
        dp[i] = INT_MAX;
    }
    for(int i = 1; i <= n; i ++)
    {
        for(int j = m - v[i].energie; j >= 0; j --)
        {
            dp[j + v[i].energie] = min(dp[j+ v[i].energie], dp[j] + v[i].cost);
        }
    }
    if(dp[m] == INT_MAX)
        fout << -1 << '\n';
    else
        fout << dp[m] << '\n';
    return 0;
}