Cod sursa(job #457407)

Utilizator danni_1107Sengher Daniel danni_1107 Data 19 mai 2010 16:28:08
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <cstdio> 
 
 
int a[300000]; 
 
 
 
 
int main() { 
    
FILE *ff,*gg; 
   
ff = fopen("energii.in","r"); 
gg = fopen("energii.out","w"); 
    
int g, w; 
    
fscanf(ff,"%d\n%d\n",&g,&w); 
    
int e,c; 
for (int i=1; i<=w; ++i) { 
        
a[i] = -1; 
    
} 
    
for (int i=1;i<=g; i++) { 
        
fscanf(ff,"%d %d\n", &e, &c); 
18.        
for (int j=w; j>=e+1; --j) { 
            
if (a[j-e]!=-1) { 
                
if (a[j]==-1 || a[j-e]+c<a[j]) { 
                    
a[j] = a[j-e]+c; 
               
} 
            
} 
        
} 
        
for (int j=e;j>=0;--j) { 
            
if (a[j]==-1 || a[j]>c)  
                
a[j] = c; 
        
} 
        
/*for (int i=1; i<=w; ++i)  
            
printf("%d ",a[i]); 
        
printf("\n");        
getchar();*/    
}     
//if (a[w]==0) fprintf(gg,"-1");     
/*else*/ fprintf(gg,"%d",a[w]);     
fclose(ff);     
fclose(gg);    
return 0; 
}