Cod sursa(job #1865232)

Utilizator KusikaPasa Corneliu Kusika Data 1 februarie 2017 16:10:58
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <bits/stdc++.h>
using namespace std;

int n, W, ans;
int e[1005], c[1005];
int dp[5005];

int main() {
    ifstream cin("energii.in");
    ofstream cout("energii.out");
    cin >> n >> W;
    for (int i = 1; i <= n; i++) cin >> e[i] >> c[i];
    for (int j = 0; j <= W; j++) dp[j] = 100000;
    for (int i = 1; i <= n; i++) {
        for (int j = W; j >= 1; j--) {
            if (j > e[i]) dp[j] = min(dp[j], dp[j-e[i]] + c[i]);
            else dp[j] = min(dp[j], c[i]);
        }
    }
    cout << ((dp[W] == 100000) ? -1 : dp[W]);
}