Cod sursa(job #460185)

Utilizator blue_phoenixPosea Elena blue_phoenix Data 1 iunie 2010 15:34:55
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<stdio.h>   
long gen,w,i,nr,max=2000000000,v[15001],cost[1001],energie[1001];
  int main()
 {
  freopen("energii.in","rt",stdin);   
     freopen("energii.out","wt",stdout);   
     scanf("%ld%ld",&gen,&w);   
     for(i=1;i<=gen;i++)   
         scanf("%ld%ld",&energie[i],&cost[i]);   
  
     for(i=1;i<=w;i++)
         v[i] = 2000000000;

 for( nr = 1; nr <= gen; nr++)   
         for( i = w; i >= 0; i--)   
             if(v[i]<2000000000)   
                 {   
                 if(i+energie[nr]>=w && v[i]+cost[nr] <max) max=v[i]+cost[nr];   
                 else  
                     if(v[i+energie[nr]]>v[i]+cost[nr])   
                         v[i+energie[nr]] = v[i]+cost[nr];   
                 }   
  
     if(max<2000000000) printf("%ld",max);   
     else printf("-1\n");   
  
      //printf("catel");
     return 0;   
 }