Cod sursa(job #1732578)

Utilizator AnaRaduAna-Maria Radu AnaRadu Data 21 iulie 2016 22:44:43
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>
#define lim 10000
#define inf 2000000000
int v[lim+5];
int main(){
    freopen("energii.in","r",stdin);
    freopen("energii.out","w",stdout);
    int i,j,n,m,val=0,min=inf,e,c;
    scanf("%d%d",&n,&m);
    for(i=1;i<=lim;i++)
        v[i]=inf;
    for(i=1;i<=n;i++){
        scanf("%d%d",&e,&c);
        if(val+e<=lim)
            val+=e;
        else
            val=lim;
        for(j=val;j>=e;j--)
            if(v[j]>v[j-e]+c)
                v[j]=v[j-e]+c;
    }
    for(i=m;i<=lim;i++)
        if(v[i]<min)
            min=v[i];
    if(min==inf)
        min=-1;
    printf("%d\n",min);
return 0;
}