Cod sursa(job #2859895)

Utilizator AswVwsACamburu Luca AswVwsA Data 2 martie 2022 09:31:59
Problema Energii Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include <climits>
#define ll long long
using namespace std;
const int NMAX = 1003, VALMAX = 10003;
int e[NMAX], c[NMAX];
int dp[VALMAX];
signed main()
{
    ifstream cin("energii.in");
    ofstream cout("energii.out");
    int n, w, i, mx = 0, s = 0, j;
    cin >> n >> w;
    for (i = 1; i <= n; i++)
    {
        cin >> e[i] >> c[i];
        s += e[i];
    }
    mx = min(VALMAX, s);
    for (i = 1; i <= mx; i++)
        dp[i] = INT_MAX;
    for (i = 1; i <= n; i++)
        for (j = 0; j + e[i] <= mx; j++)
            if (dp[j] != INT_MAX)
                dp[e[i] + j] = min(dp[j] + c[i], dp[e[i] + j]);
    int mn = INT_MAX;
    for (i = w; i <= mx; i++)
        mn = min(mn, dp[i]);
    if (mn == INT_MAX)
        mn = -1;
    cout << mn;
}