看到群里在聊这个题,就新学这个nth_element()AC了
想了下内部远离应该就是快速排序的partition吧
nth_element(a, a+k, a+n)
求a[0] - a[n-1]范围内第k小的数
代码如下:
#include <bits/stdc++.h>
#define MAXN 5000010
using namespace std;
int a[MAXN];
int main(void) {
int n, k;
while(scanf("%d%d", &n, &k) != EOF) {
for(int i=0; i<n; ++i) {
scanf("%d", &a[i]);
}
nth_element(a, a+(n-k), a+n);
printf("%d\n", a[n-k]);
}
return 0;
}