Cod sursa(job #2761227)

Utilizator tryharderulbrebenel mihnea stefan tryharderul Data 1 iulie 2021 10:57:53
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

const int NMAX = int(1e7);
int n, w;

struct elem {
    int e, c;
} v[1003];

int dp[5003];

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", &v[i].e, &v[i].c);

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