输入 n(1≤n<5000000 且 n 为奇数)个数字 ai(1≤ai<109),输出这些数字的第 k 小的数。最小的数是第 0 小。
请尽量不要使用 nth_element 来写本题,因为本题的重点在于练习分治算法。
输入格式无
输出格式无
注意本题在提交的时候发现单纯使用cin和cout会出现tle,所以得对两者进行优化。或者使用scanf和printf
输入输出样例输入 5 1 4 3 2 1 5 输出 2
#include#include using namespace std; const int maxn = 5000005; int arr[maxn]; int main(void) { ios::sync_with_stdio(false); cin.tie(0); //以上两行代码用来优化cin和cout int n, k; cin >> n >> k; for (int i = 0; i < n; i++) cin >> arr[i]; nth_element(arr, arr + k, arr + n); cout << arr[k]; }



