#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll a[100005];
void solve()
{
ll n, k;
cin >> n >> k;
for (ll i = 1; i <= n; i++)
{
cin >> a[i];
}
if (n == 0)
{
cout << 0;
return;
}
if (n == 1)
{
if (a[1] <= k)
cout << 1;
else
cout << 0;
return;
}
sort(a + 1, a + n + 1);
double ans = 0;
ll dis = 0, cnt = 0;
ll l = 1, r = 0;
while (r <= n)
{
r++;
cnt++;
dis = a[r] - a[l];
if (a[r]-a[l]<=k)
{
continue;
}
ans = max(ans, (cnt - 1) * 1.0 / n);
while (dis > k)
{
l++, cnt--;
dis = a[r] - a[l];
}
}
cout << ans;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
solve();
return 0;
}
先将坐标排序,然后开始滑动窗口

京公网安备 11010502036488号