C语言 求助大佬 只有第一个AC了
查看原帖
C语言 求助大佬 只有第一个AC了
1047010
_Yvonne楼主2023/7/31 00:45

看了很多解答,也试了很多,还是错的,求捞捞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;
}
2023/7/31 00:45
加载中...