Cod sursa(job #292975)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 31 martie 2009 20:53:11
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<stdio.h>  
void read(),solve();
int n,G,c[5005],i,energ,cost,j,Cmin=20000000;  
int inf=20000000;

int main()  
{  
       read();
	   
	   solve();
	   
       if(Cmin==inf)   printf("-1\n");  
         else   printf("%d\n",Cmin);  
	   
       return 0;  
	   
   }  

void read()
{     freopen("energii.in","r",stdin);
	  freopen("energii.out","w",stdout);  
	  scanf("%d%d",&n,&G);  
	  
	  for(i=1;i<G;i++) c[i]=inf;  
}
   

void solve()
{
	for(i=1;i<=n;i++)  
	 {    scanf("%d%d",&energ,&cost);  
          if(energ>=G){ if(cost<Cmin)  Cmin=cost; 
                		continue;
		               }
		  for(j=G-energ;j<G;j++)  Cmin=(Cmin<c[j]+cost)? Cmin : c[j]+cost;
                    
		  for(j=G;j>=energ;j--) c[j]=(c[j]<c[j-energ]+cost)? c[j] : c[j-energ]+cost;
		  
       }  
}