Cod sursa(job #1847748)

Utilizator dan89Stan Alexandru dan89 Data 14 ianuarie 2017 23:28:33
Problema Energii Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#define in "energii.in"
#define out "energii.out"

using namespace std;

int main() {
    freopen(in, "r", stdin);
    freopen(out, "w", stdout);

    int G,W;

    cin>>G>>W;

    int eg[G+1], cg[G+1], ta[G+1][W+1];

    for (int i=1; i<= G; i++) {
        cin>>eg[i]>>cg[i];
    }

    for (int i=0; i<=G; i++) {
        for (int j=0; j<= W; j++) {
            ta[i][j] = 10005;
        }
    }

    for (int i=1; i<=G; i++) {
        for (int j=1; j<=W; j++) {
            if (j > eg[i]) {
                ta[i][j] = min(ta[i-1][j], cg[i] + ta[i-1][j-eg[i]]);
            } else {
                ta[i][j] = min(ta[i-1][j], cg[i]);
            }
        }
    }

    if (ta[G][W] == 10005){
        cout<<-1;
    } else {
        cout<<ta[G][W];
    }

    return 0;
}