当输入为“3 1 3 2 1”时,输出结果为2。()
#include <algorithm>
#include <cstdio>
#include <cstring>
#define ll long long
int n, k;
int a[200007];
int ans[200007];
int main(){
scanf("%d%d", &n, &k);
for (int i=1; i<=n; ++i){
scanf("%d", &a[i]);
}
std::sort(a+1, a+n+1);
n = std::unique(a+1, a+n+1) - a - 1;
for(int i=1, j=0; i<=n; ++i){
for(; j<i && a[i]-a[j+1]>k; ++j);
ans[i] = ans[j] + 1;
}
printf("%d\n", ans[n]);
return 0;
}
正确
错误