40分求助!
查看原帖
40分求助!
576173
FanSizhe127楼主2022/10/10 10:53
#include<bits/stdc++.h>
using namespace std;

int main()
{
	long long i,j,k,n;
	double a[10005],b[10005],c[10005],m,sum=0,ans=0;
	cin>>n>>m;
	for(i=1;i<=n;i++)
	{
		cin>>b[i]>>c[i];
		a[i]=c[i]/b[i];
	}	
	for(i=1;i<=n;i++)
	{
		k=i;
		for(j=i+1;j<=n;j++)
			if(a[k]<a[j])k=j;
			
		if(k!=i)
		{
			int temp=a[i];
			a[i]=a[k];
			a[k]=temp;
			temp=b[i];
			b[i]=b[k];
			b[k]=temp;
			temp=c[i];
			c[i]=c[k];
			c[k]=temp;
		}
	}
	for(i=1;i<=n;i++)
	{
		if(sum+b[i]>m)
		{
			ans+=a[i]*(m-sum);
			break;
		}	
		else
		{
			ans+=c[i];
			sum+=b[i];
		}	
	}
	printf("%.2lf",ans);
}
2022/10/10 10:53
加载中...