Cod sursa(job #152999)

Utilizator adrianraduleaRadulea Adrian adrianradulea Data 9 martie 2008 23:19:20
Problema Energii Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<stdio.h>
long n,k,i,j,max,e[1001],p[1001],s[5000001],min;
FILE *f,*g;
int main()
{ f=fopen("energii.in","r"); g=fopen("energii.out","w");
  fscanf(f,"%d%d",&n,&k);
  for(i=1;i<=n;i++) fscanf(f,"%d%d",&e[i],&p[i]);
  for(i=1;i<=n;i++)
   { for(j=max;j>=0;j--)
      { if((s[j]+p[i]<s[j+e[i]]||s[j+e[i]]==0)&&(s[j]||j==0)&&j+e[i]<10000000)
	 { s[j+e[i]]=s[j]+p[i];
	   if(j+e[i]>max)max=j+e[i];
	   if(min==0&&j+e[i]>=k) min=s[j]+p[i]; else if(s[j]+p[i]<min&&j+e[i]>=k) min=s[j]+p[i];
	 }
      }
   }
  fprintf(g,"%ld",min);
  fclose(g);
  return 0;
}