Pagini recente » Cod sursa (job #1825606) | Cod sursa (job #2560515) | Cod sursa (job #1328590) | Cod sursa (job #70653) | Cod sursa (job #3295143)
#include <stdio.h>
#include <stdlib.h>
typedef struct prd
{
double w,p;
}Produs;
int comp(const void *a, const void *b)
{
Produs *prod1 = (Produs *)a;
Produs *prod2 = (Produs *)b;
double rap1 = prod1->p / prod1->w;
double rap2 = prod2->p / prod2->w;
return rap2 - rap1;
}
int main(void)
{
int N;
double G;
Produs v[5000];
double Pmax = 0;
scanf("%d %lf", &N, &G);
for(int i = 0 ; i < N ; i++)
{
scanf("%lf %lf", &v[i].w, &v[i].p);
}
qsort(v, N, sizeof(Produs), comp);
for(int i = 0 ; i < N ; i++)
{
printf("%lf, %lf", v[i].w, v[i].p);
printf("\n");
}
int k = 0;
do
{
G = G - v[k].w;
Pmax = Pmax + v[k].p;
k++;
}while(G > 0 && k < N);
printf("%lf", Pmax);
return 0;
}