Cod sursa(job #2178412)

Utilizator Constantin.Dragancea Constantin Constantin. Data 19 martie 2018 14:21:11
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <bits/stdc++.h>
using namespace std;

int n, w, dp[1010][5010];
pair <int,int> a[1010];
#define x first
#define y second

int main(){
    ifstream cin ("energii.in");
    ofstream cout ("energii.out");
    cin >> n >> w;
    for (int i=1; i<=n; i++) cin >> a[i].x >> a[i].y;
    for (int i=0; i<=n; i++){
        for (int j=1; j<=w; j++) dp[i][j] = 1e9;
    }
    for (int i=1; i<=n; i++){
        for (int j=1; j<=w; j++){
            if (j < a[i].x) dp[i][j] = min(dp[i-1][j], a[i].y);
            else dp[i][j] = min(dp[i-1][j - a[i].x] + a[i].y, dp[i-1][j]);
        }
    }
    cout << (dp[n][w] == 1e9? -1 : dp[n][w] );
    return 0;
}