第 23 题
#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;
}
判断题
第 23 题 当输入为“3132 1”时,输出结果为2。( )
第 24 题 假设输入的n为正整数,输出的答案一定小于等于n,大于等于1。( )
第 25 题 将第14行的“n=std::unique(a+1,a+n+1)-a-1;”删去后,有可能出现与原本代码不
同的输出结果。( )
第 26 题 假设输入的a数组和k均为正整数,执行第18行代码时,一定满足的条件不包括( )。
第 27 题 当输入的n=100、k=2、 a={1,2,...,100}时, 输出为( )。
第 28 题 假设输入的a数组和k均为正整数,但a数组不一定有序,则若误删去第13行的“std::sort(a+1,a+n+1);”,程序有可能出现的问题有( ) 。