先将坐标排序,然后用双指针找到长度不超过k的区间中包含最多鸡窝的数量,最后用该最大数除以n得到概率。

import sys
data=sys.stdin.read().split()
it=iter(data)

MOD=1e9+7
MOD2=998244353
def solve():
    n,k=int(next(it)),int(next(it))
    a=[int(next(it)) for i in range(n)]
    a.sort()
    ans=0
    j=0
    for i in range(n):
        while j<n and a[j]-a[i]<=k:
            j+=1
        if j-i>ans:
            ans=j-i
    print(ans/n)

if __name__=="__main__":
    _=1
    #_=int(next(it))
    for __ in range(_):
        solve()