第X大的数

来源:互联网 发布:linux控制台显示中文 编辑:程序博客网 时间:2024/04/30 14:38

Problem Description
X最近爱上了区间查询问题,给出N (N <= 100000) 个数,然后进行M (M <= 5) 次询问,每次询问时,输入一个数X (1 <= X <= N),输出N个数中第X大的数。
Input
多组输入。
每组首先输入一个整数N,代表有N个数,下面一行包含N个整数,用空格隔开。然后为一个整数M,代表有M次询问,下面的M行,每行一个整数X。
Output
输出N个数中第X大的数。
Example Input
4
1 2 2 3
4
1
2
3
4
Example Output
3
2
2
1

#include <iostream>#include <math.h>#include <cstdio>#include <cstring>#include <algorithm>#include <iomanip>using namespace std;int a[100010];int b[10010];int main(){    int n;    while(cin>>n)    {        for(int i = 0; i < n; i++)        {            cin>>a[i];        }        sort(a, a+n);        int m;        cin>>m;        for(int i = 0; i < m; i++)        {            int x;            cin>>x;            cout<<a[n-x]<<endl;        }    }    return 0;}