Pagini recente » Cod sursa (job #2564311) | Cod sursa (job #3279846) | Cod sursa (job #2235722) | Cod sursa (job #1346758) | Cod sursa (job #217947)
Cod sursa(job #217947)
#include<stdio.h>
FILE *fin=fopen("energii.in","r"),
*fout=fopen("energii.out","w");
int N,W,E[5005],C[5005],s[10000005],Nmax;
char uz[5005];
int main(){
fscanf(fin,"%d %d",&N,&W);
for(int i=1;i<=N;i++){
fscanf(fin,"%d %d",&E[i],&C[i]);
Nmax+=E[i];
}
if(Nmax<W){
fprintf(fout,"-1\n");
fclose(fin);
fclose(fout);
return 0;
}
for(int i=1;i<=Nmax;i++){
for(int j=1;j<=N;j++)
for(int k=0;E[j]+k<=i;k++)
if(E[j]+k==i && (s[i]==0 || s[i]>C[j]+s[k]))
if(uz[j]==0){
s[i]=C[j]+s[k];
uz[j]=1;
}
}
int min=2000000000;
for(int i=W;i<=Nmax;i++)
if(s[i]&&s[i]<min)
min=s[i];
fprintf(fout,"%d\n",min);
fclose(fin);
fclose(fout);
return 0;
}