【名词解释】
第一行输入两个整数
。
第二行输入
个整数
。
输出一个整数,表示满足条件的最多可选元素数量。
5 3 2 1 5 3 2
4
选取元素集合满足最大值与最小值之差为
,且无法再加入
。
#include <stdio.h>
#include <stdlib.h>
int compare(const void* a,const void* b){
return (*(int*)a-*(int*)b);
}
int myselect(int* a,int n,int k){
qsort(a, n, sizeof(int), compare);
int max=0,l=0,r=0;
for (r=0; r<n; r++) {
while (a[r]-a[l]>k) {
l++;
}
int cur_count=r-l+1;
if (cur_count>max) {
max=cur_count;
}
}
return max;
}
int main() {
int m,n;
scanf("%d %d", &m, &n);
int* a=(int*)malloc(sizeof(int)*m);
for (int i=0; i<m; i++) {
scanf("%d", &a[i]);
}
int res=myselect(a, m, n);
printf("%d", res);
return 0;
}