80分求助,第一个测试点RE
查看原帖
80分求助,第一个测试点RE
753241
ge_yiyang_001_DT楼主2023/8/14 16:20
#include<iostream>
#include<algorithm>
#include<iomanip>
using namespace std;
struct node{
	double m,v;
}a[105];
bool cmp(node a,node b){
	return (a.v/a.m)>(b.v/b.m);
}
int main(){
	int n;
	double t;
	cin>>n>>t;
	for(int i=1;i<=n;i++){
		int m,v;
		cin>>m>>v;
		if(m!=0&&v!=0){
			a[i].m=m;
			a[i].v=v;
		}
	}
	sort(a+1,a+n+1,cmp);
	double m=0,v=0;
	int top=0;
	while(m<=t){
		top++;
		m+=a[top].m;
		v+=a[top].v;
	}
	if(m>t)v-=a[top].v/a[top].m*(m-t);
	cout<<fixed<<setprecision(2)<<v;
	return 0;
}
2023/8/14 16:20
加载中...