看了很多解答,也试了很多,还是错的,求捞捞QAQ
麻烦大佬们帮忙看看,跪谢
#include<stdio.h>
#include<stdlib.h>
typedef struct {
double m;
double v;
double c;
} bag;
bag bg[105];
int cmp(bag*a,bag*b)
{
return ((*(bag*)b).c-(*(bag*)a).c);
}
int main()
{
int n, i;
double t;
scanf("%d %lf", &n, &t);
for(i = 0; i < n; i++)
{
scanf("%lf %lf", &bg[i].m, &bg[i].v);
bg[i].c =bg[i].v/ bg[i].m;
}
qsort(bg, n, sizeof(bag), cmp);
double sum = 0;
for(i = 0; i < n; ++i)
{
if(bg[i].m >= t)
{
sum += bg[i].c * t;
break;
}
if(bg[i].m<t)
{
sum += bg[i].v;
t -= bg[i].m;
}
}
printf("%.2lf", sum);
return 0;
}