@DALAO们,求助(样例都过不了!)
查看原帖
@DALAO们,求助(样例都过不了!)
1071907
lzhgrq楼主2024/7/24 14:03
#include<bits/stdc++.h>
using namespace std;
const double N=1e-7; 
const int constant=100005;
double n,k,a[constant];
bool _(double mid){
	double sum=0,cnt=0;
	for(int i=1;i<=n;i++){
		if(a[i]>mid){
			cnt=cnt+(a[i]-mid)*(100-k)/100;
		}
	}
	for(int i=1;i<=n;i++){
		if(a[i]<mid){
			cnt=cnt-mid+a[i];
		}
	}
	return cnt==0;
}
int main(){
	scanf("%lf%lf",&n,&k);
	for(int i=1;i<=n;i++){
		scanf("%lf",&a[i]);
	}
	double l=0,r=1000;
	while(l<=r){
		double mid=l+(r-l)/2;
		if(_(mid)){	
			l=mid+N;
		} 
		else{
			r=mid-N;
		}
	}
	printf("%.9lf",l-N);
	return 0;
} 
2024/7/24 14:03
加载中...