如题
#include <bits/stdc++.h>
using namespace std;
const int N = 50005;
int a[N];
int lst[N];
int main() {
int n, k;
cin >> n >> k;
for(int i = 1;i <= n;i ++ ) {
cin >> a[i];
}
sort(a + 1, a + n + 1);
for(int i = 1, j = 0;i <= n;i ++ ) {
while(j < n && a[j + 1] - a[i] <= k) j ++ ;
lst[i] = j;
}
int ans = 0;
for(int i = 1;i <= n;i ++ ) {
for(int j = lst[i] + 1;j <= n;j ++ ) {
ans = max(ans, lst[i] - i + 1 + lst[j] - j + 1);
// cout << i << " " << j << " " << lst[i] - i + 1 + lst[j] - j + 1 << "\n";
}
}
cout << ans;
return 0;
}