Cod sursa(job #168983)

Utilizator ovy2906Popescu Ovidiu ovy2906 Data 31 martie 2008 22:20:13
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>
long g,w,i,nr,max = 2000000000,v[15001],cg[1001],eg[1001];
 int main()
 {
     freopen("energii.in","rt",stdin);
     freopen("energii.out","wt",stdout);
     scanf("%ld%ld",&g,&w);
     for(i=1;i<=g;i++)
         scanf("%ld%ld",&eg[i],&cg[i]);

     for(i=1;i<=w+10001;i++)
         v[i] = 2000000000;

     for( nr = 1; nr <= g; nr++)
         for( i = w; i >= 0  ; i--)
             if(v[i]<2000000000)
                 {
                 if(i+eg[nr]>=w && v[i]+cg[nr] <max) max=v[i]+cg[nr];
                 else
                     if(v[i+eg[nr]]>v[i]+cg[nr])
                         v[i+eg[nr]] = v[i]+cg[nr];
                 }

     if(max<2000000000) printf("%ld",max);
     else printf("-1\n");


     return 0;
 }