Cod sursa(job #327952)

Utilizator ZethpixZethpix Zethpix Data 30 iunie 2009 16:48:31
Problema Energii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <stdio.h>
FILE *f,*g;
long maxn=10000002;
long d[5002];
long n,w,i,t,x,y;
int main(){
 f=fopen("energii.in","r");
 g=fopen("energii.out","w");
 fscanf(f,"%ld%ld",&n,&w);
 for (i=1;i<=w;i++) d[i]=maxn;
 for (t=1;t<=n;t++){
  fscanf(f,"%ld%ld",&x,&y);
  for (i=w-1;i>=0;i--){
   if (i+x<=w){
    if (d[i+x]>d[i]+y)
     d[i+x]=d[i]+y;
   }
    else
     if (d[w]>d[i]+y)
      d[w]=d[i]+y;
  }
 }
 if (d[w]==maxn) fprintf(g,"-1\n");
  else fprintf(g,"%ld",d[w]);
 fclose(f);
 fclose(g);
 return 0;
}