哪位巨佬能帮忙解决这个问题???
查看原帖
哪位巨佬能帮忙解决这个问题???
1050501
ATION001楼主2024/7/1 18:04

洛谷已AC,Virtual Judge 第一个点都没过。

代码

#include<bits/stdc++.h>
using namespace std;
int n,k;
double a[100010];
bool code(double x){
	double b1=0.0,b2=0.0;
	for(int i=1;i<=n;i++){
		if(a[i]<x){
			b1+=x-a[i];
		}else{
			b2+=a[i]-x;
		}
	}
	return b2*((100.0-k)/100.0)>=b1;
}
int main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	double l=0.0,r=1000.0,mid;
	while(r-l>=1e-8){
		mid=(l+r)/2.0;
		if(code(mid)){
			l=mid+1e-8;
		}else{
			r=mid;
		}
	}
	cout<<fixed<<setprecision(7)<<r<<endl;
	return 0;
}
2024/7/1 18:04
加载中...