Cod sursa(job #473805)

Utilizator Pepelea_FlaviuFlaviu Pepelea Pepelea_Flaviu Data 31 iulie 2010 22:38:02
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
# include <stdlib.h>
# include <cstdio>

# define inf 10000000
using namespace std;

int C[1001],E[1001],G[10005],n,w,i,j,min,s;
int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    
    scanf("%d%d",&n,&w);
    for (i = 1; i <= n; i++)
        scanf("%d%d",&E[i],&C[i]);
        
    for (i = 1; i <= 2 * w; i++)
    G[i] = inf;
    
    //for (i = 1; i <= n; i++)
    //G[E[i]] = C[i];
    
    for (i = 1; i <= n; i++)
        for (j = 2 * w; j >= 1; j--)    
        if (j >= E[i])
        if (G[j - E[i]] + C[i] < G[j])
                G[j] = G[j - E[i]] + C[i];
                
    min = inf;    
    for (i = w; i <= 2 * w ; i++)
    if (min > G[i]) min = G[i];
    
    /*for (i = 1; i <= n; i++)
        s = s + E[i];
        if (s < w) printf("-1");
    else*/
    if (min == inf) printf("-1\n");
    else printf("%d",min);
    
return 0;
}