Pagini recente » Cod sursa (job #32883) | Cod sursa (job #1400719) | Cod sursa (job #2026944) | Cod sursa (job #298488) | Cod sursa (job #416699)
Cod sursa(job #416699)
#include<stdio.h>
FILE *in,*out;
typedef struct generator
{
int prod;
int cost;
double raport;
};
generator u[1001],aux;
int quicksort(generator array[1001],int left,int right)
{
if(left<right)
{
int i,j;
double v;
generator aux;
v=array[right].raport;
i=left-1;
j=right;
for(;;)
{
while(array[++i].raport>v);
while(array[--j].raport<v);
if(i>=j)
break;
aux=array[i];
array[i]=array[j];
array[j]=aux;
}
aux=array[i];
array[i]=array[right];
array[right]=aux;
quicksort(array,left,i-1);
quicksort(array,i+1,right);
}
return 0;
}
int n,i,cnec,ccons;
int main()
{
in=fopen("energii.in","rt");
out=fopen("energii.out","wt");
fscanf(in,"%d",&n);
fscanf(in,"%d",&cnec);
for(i=0;i<n;i++)
{
fscanf(in,"%d %d",&u[i].prod,&u[i].cost);
u[i].raport=(double)u[i].prod/u[i].cost;
}
quicksort(u,0,n-1);
while(cnec>0)
{
cnec-=u[i].prod;
ccons+=u[i].cost;
i++;
if(i>=n)
break;
}
if(cnec>0)
fprintf(out,"-1");
else
fprintf(out,"%d",ccons);
return 0;
}