80分求助。。。
查看原帖
80分求助。。。
325650
seven7777楼主2021/3/6 21:50
#include <bits/stdc++.h> 
using namespace std;
struct bag
{
	int m,v;
}a[110];
bool cmp(bag x,bag y)
{
	return 1.0*x.v/x.m>1.0*y.v/y.m; 
}
int main()
{
	int n,t,i,c;
	double ans;
	cin>>n>>c;
	t=c;
	for(int i=0;i<n;i++)
	{
		cin>>a[i].m>>a[i].v;
	}
	sort(a,a+n,cmp);
	for(i=0;i<n;i++)
	{
		if(a[i].m>t)  //某一堆的金币比书包容量大 
			break;
		else
		{
			t=t-a[i].m;
			ans+=a[i].v;
		}
	}
	if(t!=0)
		ans+=1.0*t/a[i].m*a[i].v;  //1.0不能忘,转换为浮点数才能精准计算 
	printf("%.2f",ans);
	return 0;
}
2021/3/6 21:50
加载中...