第一个点RE了怎么回事
查看原帖
第一个点RE了怎么回事
761678
Fantasy_ACovo楼主2022/10/3 19:55
#include <bits/stdc++.h>
using namespace std;
int n,t,j;
double ans,sum;
struct jj{
	int zz,z;
	double ff;
}a[500];
int cmp(jj k,jj e){
	return k.ff>e.ff;
}
int main(){
	cin>>n>>t;
	for(int i=0;i<n;++i){
		cin>>a[i].zz>>a[i].z;
		a[i].ff=a[i].z*1.0/a[i].zz;
	}
	sort(a,a+n,cmp);
	if(a[0].zz>t){
		ans=t+a[0].ff;
		cout<<fixed<<setprecision(2)<<ans;
		return 0;
	}
	while(1){
		sum+=a[j].zz;
		ans+=a[j].z;
		if(t-sum<a[j+1].zz){
			ans+=(t-sum)*a[j+1].ff;
			break;
		}
		++j;
	}
	cout<<fixed<<setprecision(2)<<ans;
	return 0;
} 
2022/10/3 19:55
加载中...