Pagini recente » Cod sursa (job #2835455) | Cod sursa (job #1332233) | Cod sursa (job #1401612) | Cod sursa (job #1087120) | Cod sursa (job #153002)
Cod sursa(job #153002)
#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&&j+e[i]>k) max=k; else
if(j+e[i]>max&&j+e[i]<=k)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];
}
}
}
if(min!=0) fprintf(g,"%ld",min); else fprintf(g,"-1");
fclose(g);
return 0;
}