Cod sursa(job #975198)

Utilizator andy1496Casu-Pop Andrei andy1496 Data 19 iulie 2013 13:36:39
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <cstdio>
#include <algorithm>
using namespace std;

int A[1002][5002];

int main()
{
    freopen ("energii.in", "r", stdin);
    freopen ("energii.out", "w", stdout);
 
    int G, W;
    scanf ("%d %d", &G, &W);
 
    int w[1002], c[1002];
    for(int i = 0; i < G; ++i) scanf ("%d %d", &w[i], &c[i]);
 
    for(int i = 0; i <= W; ++i) A[0][i] = 200000000;
    for(int j = 0; j <= G; ++j) A[j][0] = 200000000;
 
    for(int e = 1; e < G; ++e)
        for(int s = 1; s <= W; ++s)
            if(s <= w[e])
                A[e][s] = min(c[e], A[e-1][s]);
            else
                A[e][s] = min(A[e-1][s], c[e] + A[e-1][s-w[e]]);
     

    if(A[G-1][W] == 200000000) printf ("%d", -1);
    else printf ("%d", A[G-1][W]);
}