求助大佬
查看原帖
求助大佬
397926
愚末语tenseTL楼主2020/10/12 21:15

测试案例过了,但上交后全红了,由于没有更多的测试案例,检查不出错误点。。。。求大佬帮助

#include<stdio.h>
#define N 10000
int s1[N], s2[N];
double s[N];
int ss[N];
int n, T;
double sum,gg;
void find()
{
	double v;
	for (int j = 0; j < n; j++)
	{	
		double max = s[j];
		int t = j;
		for (int i = 1; i < n; i++)
		{
			if (max < s[i])
			{
				v = s[j];
				s[j] = s[i];
				s[i] = v;
				t = i;
			}
		}
		ss[j] = t;
	}
}
int inputt()
{
	for (int i = 0; i < n; i++)
	{
		if (gg + s1[ss[i]] <= T)
		{
			sum += s2[ss[i]];
			gg += s1[ss[i]];
		}
		else
		{
			gg = T - gg;
			double eta = (double)gg / s1[ss[i]];
			sum = sum + s2[ss[i]] * eta;
			break;
		}
	
	}
	return 0;
}
int main()
{
	scanf("%d%d",&n,&T);
	for (int i = 0; i < n; i++)
	{
		scanf("%d%d",&s1[i],&s2[i]);
		s[i] = (double)s2[i] / s1[i];
	}
	find();
	inputt();
	printf("%.2f\n",sum);
	return 0;
}
2020/10/12 21:15
加载中...