Cod sursa(job #2799372)

Utilizator domistnSatnoianu Dominic Ioan domistn Data 13 noiembrie 2021 09:18:49
Problema Energii Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <iostream>
#include <climits>

#define NMAX 1005
#define WMAX 5005

using namespace std;

int n, e[NMAX], c[NMAX], w, dp[WMAX];

int main()
{
    freopen("energii.in", "r", stdin);
    freopen("energii.out", "w", stdout);
    scanf("%d%d", &n, &w);
    for(int i = 1; i <= n; ++i) scanf("%d%d", &e[i], &c[i]);

    for(int i = 0; i <= WMAX - 5; ++i) dp[i] = INT_MAX - 100000;

    for(int i = 1; i <= n; ++i) {
        for(int j = w; j; --j) {
            if(j <= e[i]) dp[j] = min(dp[j], c[i]);
            else dp[j] = min(dp[j], c[i] + dp[j - e[i]]);
        }
    }
    printf("%d", (dp[w] == INT_MAX ? -1 : dp[w]));
    return 0;
}