题意

  • 给定若干组数组,每组数组给出长度n和询问k
  • 输出第k大的数

思路

  • 水题,直接硬模拟+排序即可
  • 注意输入量很大,需要使用快读
inline int read(){
    int x = 0, f = 1;
    char ch = getchar();
    while(ch < '0' || ch > '9'){
        if (ch == '-')
            f = -1;
        ch = getchar();
    }
    while(ch >= '0' && ch <= '9'){
        x = (x<<1) + (x<<3) + (ch^48);
        ch = getchar();
    }
    return x * f;
}

代码

#include<bits/stdc++.h>

using namespace std;

inline int read(){
    int x = 0, f = 1;
    char ch = getchar();
    while(ch < '0' || ch > '9'){
        if (ch == '-')
            f = -1;
        ch = getchar();
    }
    while(ch >= '0' && ch <= '9'){
        x = (x<<1) + (x<<3) + (ch^48);
        ch = getchar();
    }
    return x * f;
}

int main(){
    ios:: sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    int t=read();
    while(t--){
        int n=read();
        int k=read();
        vector<int> a(n+10);
        for(int i=1;i<=n;i++){
            a[i]=read();
        }
        sort(a.begin()+1,a.begin()+n+1);
        // for(int i=1;i<=n;i++) cout << a[i] << ' ';
        // cout << '\n';
        cout << a[k] << endl;
    }
    

    return 0;
}