80分求调
查看原帖
80分求调
583593
AC_bee楼主2024/10/20 10:37

rt

#include<bits/stdc++.h>
using namespace std;
struct abc{
	double m,v;
}o[10000001];
double t;
long long n;
bool cmp(abc q,abc p)
{
	return (q.v/q.m)<(p.v/p.m);
}
int main()
{
	cin>>n>>t;
	for(long long i=1;i<=n;i++)
	{
		cin>>o[i].m>>o[i].v;	
	}
	sort(o+1,o+1+n,cmp);
	double sum=0;
	for(long long i=n;i>=1;i--)
	{
		if(t==0)
		{
			printf("%.2lf",sum);
			return 0;
		}
		if(t>=o[i].m)
		{
			sum+=o[i].v;
			t-=o[i].m;
		}
		else {
			printf("%.2lf",sum+(o[i].v/o[i].m)*t);
			return 0;
		}
	}
	return 0;
}
2024/10/20 10:37
加载中...