Cod sursa(job #458010)

Utilizator h_istvanHevele Istvan h_istvan Data 22 mai 2010 17:01:26
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>
#define FOR(i,a,b) for(i=a;i<=b;++i)
#define MAXN 1010
#define MAXK 5010
#define INF 0xFFFFFF

int n,k,i,j;
int c[MAXN],e[MAXN];
int dp[MAXK];

int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    
    scanf("%d\n",&n);
    scanf("%d\n",&k);
    FOR (i,1,n)
        scanf("%d %d\n",&e[i],&c[i]);
        
    FOR (i,1,k) dp[i] = INF;
    
    FOR (i,1,n)
        for (j = k;j >= e[i];--j)
            if (dp[j] > dp[j-e[i]]+c[i]) dp[j] = dp[j-e[i]]+c[i];
            
    if (dp[k] < INF) printf("%d\n",dp[k]);
    else             printf("-1\n");
    
    return 0;
}