灌佬多
查看原帖
灌佬多
756672
liou_zhen_4_xie_楼主2024/7/18 14:55

p2240 20分

#include <bits/stdc++.h>
using namespace std;
struct node{
	double value;
	double weight;
}gold[114514];
int num;double t;
double cmp(node x,node y){
	return x.value>y.value;
}
int main(){
	cin>>num>>t;
	for(int i=1;i<=num;i++){
		double v;
		cin>>gold[i].weight>>v;
		gold[i].value=v/gold[i].weight;
		//cout<<gold[i].value<<" ";
	}
	sort(gold+1,gold+num+1,cmp);
	double w=0;int id=1;
	double money=0;
	for(int i=1;i<=num&&w+gold[i].weight<=t;i++){
		w+=gold[i].weight;
		money+=gold[i].value*gold[i].weight;
		id++;
	}
	if(w<t) money+=gold[id].value*(t-gold[id].weight)*1.0;
	printf("%.2lf",money);
	return 0;
}

2024/7/18 14:55
加载中...