Cod sursa(job #1054797)

Utilizator ade_tomiEnache Adelina ade_tomi Data 14 decembrie 2013 10:18:56
Problema Energii Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>
int g,i,n,sum[10000004],j,pus[10000004],c[1001],gr[1001],s;
int main()
{
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    scanf("%d%d",&n,&g);
    for(i=1;i<=n;i++)
    {
        scanf("%d%d",&gr[i],&c[i]);
        s+=gr[i];
    }
    for(i=1;i<=s;i++)
        sum[i]=100000001;
    for(i=1;i<=n;i++)
    {

        for(j=1;j<=g;j++)
        {
            if(sum[j]+c[i]<sum[j+gr[i]]&&pus[j]!=i)
            {
                sum[j+gr[i]]=sum[j]+c[i];
                pus[j+gr[i]]=i;
            }
        }
        if(sum[gr[i]]>c[i]){
        sum[gr[i]]=c[i];
        pus[gr[i]]=i;
        }
    }
    int min=1000001;
    for(i=g;i<=s;i++)
    {
        if(sum[i]<min&&sum[i]!=0)
        {
            min=sum[i];
        }

    }
    if(min==1000001)
        min=-1;
    printf("%d",min);
    return 0;
}