P1923 题解

· · 题解

传送门:P1923 【深基9.例4】求第 k 小的数

更佳的阅读体验:洛谷 P1923 题解

简要题意:给定一个 n 个元素的序列 a,最小的数是第 0 小,求第 k 小的数。

提供一个非正解的暴力做法。

我们直接对数组排序,然后输出 a_k 即可。

由于本题数据规模较大(n \le 5 \times 10^6),因此需要关闭流同步才能卡过去。

#include <iostream>
#include <algorithm>
using namespace std;

const int N = 5e6 + 10;
int n, k, a[N];

int main() {
    cin.tie(nullptr);  // 这两句用于关闭流同步,但关流后不可以混用 cin / scanf
    ios::sync_with_stdio(false);
    cin >> n >> k;
    for (int i = 0; i < n; ++i) cin >> a[i];
    sort(a, a + n);
    cout << a[k] << '\n';
    return 0;
}