Cod sursa(job #472470)

Utilizator idomiralinIdomir Alin idomiralin Data 24 iulie 2010 23:55:29
Problema Energii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
# include <stdlib.h>
# include <cstdio>

using namespace std;

int G[10005],E[10005],C[10005],n,w,i,j,min,ok,viz[10005],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] = 10001;
    
    for (i = 1; i <= n; i++)
    G[E[i]] = C[i];
    
    for (j = 1; j <= n; j++)
        for (i = 2 * w; i >= 1; i--)    
        if (i > E[j])
        if (G[i - E[j]] + C[j] < G[i])
                G[i] = G[i - E[j]] + C[j];
                
    min = 10000;    
    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
    printf("%d",min);
    
return 0;
}