均值不等式
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
const int N = 5e5 + 10;
int n;
double s;
int a[N];
int main()
{
scanf("%d%lf", &n, &s);
for (int i = 0; i < n; i ++ ) scanf("%d", &a[i]);
sort(a, a + n);
double res = 0; //方差 * n
double ave = s / n; //平均数
for (int i = 0; i < n; i ++ )
{
double cur = s / (n - i); //cur为当前学生需要交的钱
if (a[i] < cur) cur = a[i]; //如果手里的钱没有cur这么多, 那就全部都交
s -= cur; //需要交的钱的总数就少了cur这么多
res += (cur - ave) * (cur - ave); //把平方加到答案里面
}
printf("%.4lf", sqrt(res / n));
return 0;
}
过不了最后一个数据佬
换成long double 数据加强了