我是伞兵
查看原帖
我是伞兵
835944
gyttnnd楼主2022/11/9 21:56
#include<bits/stdc++.h>
using namespace std;
struct node
{
	int m,n;
	double ans;
}a[109];
bool f(node a,node b)
{
	return a.ans<b.ans;
}
int main()
{
	int x;
	int n,t;
	cin>>n>>t;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i].m;
		cin>>a[i].n;
		a[i].ans=a[i].n/a[i].m;
	}
	sort(a+1,a+n+1,f);
	double sum=0;
	for(int i=n;i>=1;i--)
	{
		if(t<=0)
		break;
		if(a[i].m<=t)
		{
			t=t-a[i].m;
			sum=sum+a[i].n;
		}
		else
		{
			sum=sum+a[i].ans*t;
			t=0;
		}
	}
	printf("%.2lf",sum);
	return 0;
} 
2022/11/9 21:56
加载中...