Cod sursa(job #1865202)

Utilizator KusikaPasa Corneliu Kusika Data 1 februarie 2017 15:47:44
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>
using namespace std;

int n, W, ans=numeric_limits<int>::max();
int e[2000], c[2000];
int dp[200000];

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