没有白走的路,每一步都算数🎈🎈
有很多人一起去吃饭,但是每个人所带的钱的数目不一样,但全部人所带钱的和足以应对本次的开销,但是因为每个人所付的价格不一样,本题就是需要计算最小的标准差。
第一行:
n,s;n表示总共有多少人,s表示总共的开销
输出最小的标准差,并且四舍五入保留四位小数
样例输入:
5 2333
666 666 666 666 666
样例输出:
0.0000
import os
import sys
import math
n,s =map(int,input().split())
a = [int(j) for j in input().split()]
a.sort()
ans = 0
avg = s/n
for i in range(n):
if a[i]*(n-i)<s:
ans+=math.pow(avg-a[i],2)
s -= a[i]
else:
nw_avg = s/(n-i)
ans+=math.pow(nw_avg-avg,2)*(n-i)
break
print("{:.4f}".format(math.sqrt(ans/n)))