Pagini recente » Cod sursa (job #1941700) | Cod sursa (job #573632) | Cod sursa (job #2376397) | Cod sursa (job #2306498) | Cod sursa (job #314822)
Cod sursa(job #314822)
#include<stdio.h>
float e[5001];
int gen[5001][2];
int poz[5001],consum,g,w,h,sw,i;
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d%d", &g, &w);
for(i=1;i<g+1;++i)
{ scanf("%d%d", &gen[i][0], &gen[i][1]);
e[i]=(float)gen[i][0]/gen[i][1];
poz[i]=i;
}
h=g;
while(h>1)
{ h/=2;
do{
sw=1;
for(i=1;i<g-h+1;++i)
if(e[i]<e[i+h])
{ sw=0;
float aux=e[i];
e[i]=e[i+h];
e[i+h]=aux;
poz[i]=poz[i]^poz[i+h];
poz[i+h]=poz[i]^poz[i+h];
poz[i]=poz[i]^poz[i+h];
}
} while(!sw);
}
int k=1;
while(w>0)
{ w-=gen[poz[k]][0];
consum+=gen[poz[k]][1];
k++;
}
printf("%d", consum);
return 0;
}