首先排序一下,再暴力看从每一个钻石开始往后选择,可以到哪一颗钻石,统计最大答案。
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, k, a[10010]; cin >> n >> k; //莫名其妙喜欢用cin了……
for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
sort(a + 1, a + 1 + n);
int ans = 1;
for (int i = 1; i < n; i++) {
int x = i;
while (a[x] - a[i] <= k && x <= n) x++;
ans = max(ans, x - i);
} printf("%d\n", ans);
return 0;
}
$\large\color{red}{封禁大佬太强乐!}$
az