51分求调
查看原帖
51分求调
780653
gechengxiu楼主2024/5/8 21:17
#include <bits/stdc++.h>
#define ll long long
using namespace std;

const int N = 1e6 + 7;

int n, k;
double l[N];

bool check(double x) {
	double sum = 0;
	for (int i=1;i<=n; i++) {
		sum +=l[i]/x;
	}
	return sum >= k;
}

void erfen(double l,double r) {
	if (l + 1 >= r) {
		double t;
		t=l/100;
		cout << setprecision(2)<<t << endl;
		return;
	}
	double mid = (l + r) / 2;
	if (check(mid)) {
		erfen(mid, r);
	} else {
		erfen(l, mid);
	}
}

int main() {
	cin >> n >> k;
	for (int i = 1; i <= n; i++) {
		cin >> l[i];
		l[i]=l[i] *100;
	}
	sort(l,l+n+1);
	erfen(0,l[n]);
	return 0;
}

大佬看看谢谢

2024/5/8 21:17
加载中...