不知道为什么
查看原帖
不知道为什么
925638
jiangshuhang楼主2023/7/7 11:02
#include<bits/stdc++.h>
using namespace std;
int n,t;
pair<double ,double >a[1000];
pair<double,double>b[1000];
int chen;
bool cmp(pair<double,double>a,pair<double ,double >b)
{
	if(a.second!=b.second)
	{
		return a.second<b.second;
	}
}
int main()
{
	cin>>n>>t;
	double ans=0;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i].first>>a[i].second;
		b[i].first=a[i].first;
		b[i].second=a[i].second/a[i].first;
	}
//	cout<<endl;
//	for(int i=1;i<=n;i++)
//	{
//		cout<<b[i].first<<" "<<b[i].second<<endl;
//	}
//	cout<<endl;
	sort(b+1,b+1+n,cmp);
	reverse(b+1,b+1+n);
//	for(int i=1;i<=n;i++)
//	{
//		cout<<b[i].first<<" "<<b[i].second<<endl;
//	}
//	cout<<endl;
	for(int i=1;i<=n;i++)
	{
		t-= b[i].first;
		ans+=b[i].second*b[i].first;
		chen=b[i].second;
//		cout<<ans<<" ";
//		cout<<t<<" ";
//		cout<<chen<<"\n";
		if(t<0)
		{
			t=0-t;
//			cout<<t<<" ";
//			cout<<chen<<endl;
			ans-=t*chen;
			printf("%.2f",ans);
			return 0;
		}
	}
	printf("%.2f",ans);
	return 0;
}
2023/7/7 11:02
加载中...