三个样例都没问题,在测试点#12WA了,求佬调,必回关!!
查看原帖
三个样例都没问题,在测试点#12WA了,求佬调,必回关!!
1421722
gnidocon楼主2024/12/26 20:25
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int  c[1005],k[1005];
double c_k[1005];
int main()
{
	int n,m,i;
	double W = 0.0;
	cin >> n >> m;
	for(i = 0; i < n; i++)
	{
		cin >> c[i];
	}
	for(i = 0; i < n; i++)
	{
		cin >> k[i];
	}
	for(i = 0; i < n; i++)
	{
		c_k[i] = 1.0 * c[i] / k[i];
	}
	double max;
	int jud = 0;//记录最大值的下标
	while(m > 0)
	{
		max = -1;
		for(i = 0; i < n; i++)
		{
			if(c_k[i] > max)
			{
				max = c_k[i];
				jud = i;
			}
		}
		if(m >= k[jud])
		{
			W += 100 * 1 * c[jud];
			m -= k[jud];
		}
		else
		{
			W += 100 * c_k[jud] * m;
			break;
		}
		c_k[jud] = -1;
	}

	printf("%.4lf",W);
	
	return 0;
}


2024/12/26 20:25
加载中...