Cod sursa(job #2859899)

Utilizator AswVwsACamburu Luca AswVwsA Data 2 martie 2022 09:36:41
Problema Energii Scor 15
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 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;
    s = 0;
    for (i = 1; i <= n; i++)
    {
        s += e[i];
        for (j = s; j >= 0; 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;
}