提交时间:2024-10-24 13:31:27
运行 ID: 33839
#include <bits/stdc++.h> #define int long long using namespace std; int a[100005]; signed main() { //freopen("clamprun.in", "r", stdin); //freopen("clamprun.out", "w", stdout); int t, n, k; scanf("%lld", &t); while (t--) { scanf("%lld %lld", &n, &k); for (int i = 1; i <= n; i++) { scanf("%lld", &a[i]); } sort(a + 1, a + n + 1); int l = 1, r = 2, ans = 0; while (r <= n && l <= n) { r = max(r, l + 1); while (r <= n && a[r] - a[l] <= k && a[r] - a[r - 1] <= 1) { r++; } r--; ans = max(ans, r - l + 1); l++; } printf("%lld\n", ans); // a[0] = a[1]; // int mx = n, cur = 1, mi = a[1], pos = n + 1; // for (int i = 2; i <= n; i++) // { // if (a[i] - mi <= k && a[i] - a[i - 1] <= 1) // cur++; // else // { // pos = i; // mx = cur; // mi = a[i], cur = 1; // break; // } // } // if (mx == n) // { // printf("%lld\n", mx); // continue; // } // for (int i = pos; i <= n; i++) // { // if (a[i] - mi <= k && a[i] - a[i - 1] <= 1) // cur++; // else // { // mx = max(mx, cur); // mi = a[i], cur = 1; // } // } // mx = max(mx, cur); // printf("%lld\n", mx); } return 0; } //4 5 6 7 8 9 9 10 11 12