20分求助(回答闭关)
查看原帖
20分求助(回答闭关)
1224905
zzh18616920606楼主2024/8/19 08:49
#include <bits/stdc++.h>
using namespace std;
struct cyx20131003{
	int x,y;
	double c;
}a[101];
int cmp(cyx20131003 a,cyx20131003 b){
	return a.c>b.c;
}
int main(){
	int n,m;
	cin>>n>>m;
	double ans=0;
	for(int i=1;i<=n;i++){
		cin>>a[i].x>>a[i].y;
		a[i].c=a[i].y/a[i].x*1.0;
	}
	sort(a+1,a+n+1,cmp);
	for(int i=1;i<=n&&m>0;i++){
		if(a[i].x<=m){
			ans+=a[i].y;
			m-=a[i].x;
		}else{
			ans+=m*a[i].c;
			break;
		}
	} 
	printf("%.2lf",ans);
    return 0;
}
2024/8/19 08:49
加载中...