Cod sursa(job #492608)

Utilizator bogdan491Bogdan bogdan491 Data 15 octombrie 2010 11:47:31
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include<stdio.h> 
#include<limits.h> 
int g1,w,i,j,m,n,a[5002]; 
int main(){ 
FILE * f=fopen("energii.in","r"); 
FILE * g=fopen("energii.out","w"); 
fscanf (f,"%d %d",&g1,&w); 
a[0]=0; 
for (i=1;i<=w;i++)    
a[i]=INT_MAX; 
for (i=1;i<=g1;i++){    
fscanf(f,"%d %d",&m,&n); 
for (j=w;j>=0;j--) 
if (a[j]!=INT_MAX)  
if (a[j]+n<a[j+m]&&j+m<=w) 
a[j+m]=a[j]+n;  
else
if (a[j]+n<a[w]&&j+m>w)            
a[w]=a[j]+n; 
} 
if (a[w]!=INT_MAX) 
fprintf(g,"%d",a[w]); 
else
fprintf(g,"%d",-1); 
return 0; 
}