Cod sursa(job #2450650)

Utilizator Dragos1226Dragos Chileban Dragos1226 Data 23 august 2019 22:50:39
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
#define nmax 1002
#define wmax 5002
#define inf 2000000000
int n, w, e[nmax], c[nmax], dp[nmax][wmax];

int main() {
    in >> n >> w;

    for (int i = 1; i <= n; i++)
        in >> e[i] >> c[i];

    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= w; j++)
            dp[i][j] = inf;

    dp[1][e[1]] = c[1];
    for (int i = 2; i <= n; i++) {
        for (int j = 1; j <= w; j++) {
            dp[i][j] = dp[i-1][j];
            if (j >= e[i])
                dp[i][j] = min(dp[i][j], dp[i-1][j-e[i]] + c[i]);
            else
                dp[i][j] = min(dp[i][j], c[i]);
            }
        }
    if (dp[n][w] != inf)
        out << dp[n][w];
    else
        out << -1;
}