Cod sursa(job #148512)

Utilizator katakunaCazacu Alexandru katakuna Data 4 martie 2008 14:02:07
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>
#define inf 1000000000

int poz,n,w,i,e,c,max,j,v[5010];

int main(){

FILE *f=fopen("energii.in","r");

fscanf(f,"%d %d",&n,&w);

  for(i=1;i<=5001;i++){
  v[i]=inf;
  }

 v[0]=0;

 fscanf(f,"%d %d",&e,&c);
 max=e;
 v[e]=c;


 for(i=2;i<=n;i++){
 fscanf(f,"%d %d",&e,&c);

   for(j=w;j>=0;j--){

     if(v[j]!=inf){

      poz=j+e;

       if(poz>w){
       poz=w;
       }

       if(v[poz]>c+v[j]){
       v[poz]=c+v[j];
       }


     }



   }

 }

fclose(f);

FILE *g=fopen("energii.out","w");

 if(v[w]==inf){
 fprintf(g,"%d",-1);
 }

 else
 fprintf(g,"%d",v[w]);

fclose(g);


return 0;
}