Pagini recente » Istoria paginii utilizator/tudor3picioare | Cod sursa (job #1019966) | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #704798)
Cod sursa(job #704798)
#include <stdio.h>
FILE *f;
int G[1001],C[1001];
float r[1001],s;
int E,P,i,j,N,W,t;
int main(){
f=fopen("energii.in","r");
fscanf(f,"%d\n%d\n",&N,&W);
for(i=1;i<=N;i++){
fscanf(f,"\n%d %d",&G[i],&C[i]);
r[i]=G[i];s=C[i];
r[i]=r[i]/s;
E+=G[i];
P+=C[i];
}
fclose(f);
f=fopen("energii.out","w");
if(E<W){fprintf(f,"-1\n");fclose(f);return 0;}
else if(E==W){fprintf(f,"%d\n",N);fclose(f);return 0;}
j=1;
while(j){
j=0;
for(i=2;i<=N;i++) if(r[i]<r[i-1]){
s=r[i-1];r[i-1]=r[i];r[i]=s;j=1;
t=G[i-1];G[i-1]=G[i];G[i]=t;j=1;
t=C[i-1];C[i-1]=C[i];C[i]=t;j=1;
}
}
for(i=N;i>0;i--){
if(E-G[i]>=W){
E-=G[i];
P-=C[i];
}
else break;
}
fprintf(f,"%d\n",P);
fclose(f);
return 0;
}