Cod sursa(job #988783)

Utilizator florin.elfusFlorin Elfus florin.elfus Data 23 august 2013 21:08:49
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>
 
int E[1024], C[1024], dp[20000];
 
int main()
{
    int i, j, G, W;
     
    freopen("energii.in", "r", stdin);
    freopen("energii.out", "w", stdout);
     
    scanf("%d%d", &G, &W);
    for (i = 1; i <= G; i ++)
        scanf("%d%d", &E[i], &C[i]);
     
    for (i = 1; i <= W + 10100; i ++)
        dp[i] = 1 << 30;
     
    for (i = 1; i <= G; i ++)
        for (j = W; j >= 0; j --)
            if (dp[j + E[i]] > dp[j] + C[i])
                dp[j + E[i]] = dp[j] + C[i];
     
    int sol = 1 << 30;
     
    for (i = W; i <= W + 10100; i ++)
        if (dp[i] < sol)
            sol = dp[i];
     
    if (sol == 1 << 30)
        printf("-1");
    else
        printf("%d", sol);
    return 0;
}