dalao们救命!只有第一个测试点错了
查看原帖
dalao们救命!只有第一个测试点错了
390290
yaolijun楼主2021/3/28 21:28
#include<bits/stdc++.h>
using namespace std;
struct gold{
	double m;
	double v;
	double d;
}a[101];
int n,m;
double ans;
bool px(const gold &a,const gold &b)
{
	if(a.d>b.d)
	return 1;
	else
	return 0;
}
int main()
{
	cin>>n>>m;
	if(n==0)
	{
		cout<<0;
		return 0;
	}
	if(m==0)
	{
		cout<<0;
		return 0;
	}
	for(int i=1;i<=n;i++)
	{
		cin>>a[i].m>>a[i].v;
		a[i].d=a[i].v/a[i].m;
	}
	sort(a+1,a+1+n,px);
	int i=1;
	while(i<=n)
	{
		if(m>=a[i].m)
		{
			ans+=a[i].d*a[i].m;
			m-=a[i].m;
			i++;
		}
		else
		{
			ans+=a[i].d*m;
			printf("%0.2lf",ans);
			return 0;
		}
	}
}
2021/3/28 21:28
加载中...