求助
查看原帖
求助
637788
kimi0705楼主2023/7/25 16:39
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int K = 1e3 + 10;
const int L = 1e4 + 10;
const int M = 1e5 + 10;
const int N = 1e6 + 10;
int n, m, k; // 进行 m 次操作,加的次数不能超过 k
int arr[M], sum[M];
double ans;
signed main() {
	//	freopen (".\\data\\in.txt", "r", stdin);
	//	freopen (".\\data\\out.txt", "w", stdout);
//	ios::sync_with_stdio (false);
//	cin.tie (0);
//	cout.tie (0);
	cin >> n >> m >> k;
	for (int i = 1; i <= n; i++) cin >> arr[i];
	sort (arr + 1, arr + n + 1);
	for (int i = n; i >= 0; i--) sum[i] = sum[i + 1] + arr[i];
	for (int i = 0; i <= min (n - 1, m); i++)
		ans = max (ans, (sum[i] + min (m - i, (n - i) * k) ) * 1.0 / (n - i) );

	printf ("%.10f", ans);
	return 0;
}
2023/7/25 16:39
加载中...