7-6 sdut-C语言实验-第X大的数

简介: 7-6 sdut-C语言实验-第X大的数

7-6 sdut-C语言实验-第X大的数


分数 20


全屏浏览


切换布局


作者 马新娟


单位 山东理工大学


X最近爱上了区间查询问题,给出N (N <= 100000) 个数,然后进行M (M <= 50) 次询问,每次询问时,输入一个数X (1 <= X <= N),输出N个数中第X大的数。


###输入格式:

首先输入一个整数N,代表有N个数,下面一行包含N个整数,用空格隔开。然后为一个整数M,代表有M次询问,下面的M行,每行一个整数X。


###输出格式:

输出N个数中第X大的数。

###输入样例:

1. 4
2. 1 2 2 3
3. 4
4. 1
5. 2
6. 3
7. 4

###输出样例:

1. 3
2. 2
3. 2
4. 1


代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB


#include<stdio.h>
#include<stdlib.h>
void Quick_sort(int a[], int l, int r){
  if(l >= r) return ;
  int i = l - 1, j = r + 1, x = a[l + r >> 1];
  while(i < j){
    do i++; while(a[i] < x);
    do j--; while(a[j] > x);
    if(i < j){
      int t = a[i];
      a[i] = a[j];
      a[j] = t;
    }
  }
  Quick_sort(a, l, j), Quick_sort(a, j + 1, r);
}
int a[100066];
int main()
{
  int n, k, x;
  scanf("%d", &n);
  for(int i = 0; i < n; i++){
    scanf("%d", &a[i]);
  }
  Quick_sort(a, 0, n - 1);
  scanf("%d", &k);
  while(k--){
    scanf("%d", &x);
    printf("%d\n", a[n - x]);//max
  }
  return 0;
}
目录
相关文章
|
7月前
7-8 sdut-C语言实验-老--质价比
7-8 sdut-C语言实验-老--质价比
40 0
|
5月前
7-5 sdut-C语言实验-最少拦截系统
7-5 sdut-C语言实验-最少拦截系统
32 6
|
5月前
7-8 sdut-C语言实验-取数字问题
7-8 sdut-C语言实验-取数字问题
30 2
|
5月前
|
人工智能 C语言
7-5 sdut -C语言实验-节约用电
7-5 sdut -C语言实验-节约用电
43 3
|
5月前
7-4 sdut-C语言实验-区间覆盖问题
7-4 sdut-C语言实验-区间覆盖问题
34 2
|
5月前
|
机器学习/深度学习 安全
7-3 sdut-C语言实验-小鑫去爬山
7-3 sdut-C语言实验-小鑫去爬山
32 2
|
5月前
7-2 sdut-C语言实验-删数问题
7-2 sdut-C语言实验-删数问题
28 2
|
5月前
|
机器学习/深度学习 安全
7-3 sdut-C语言实验-王老师去爬山
7-3 sdut-C语言实验-王老师去爬山
33 1
|
5月前
|
算法
7-2 sdut-C语言实验-数字三角形问题
7-2 sdut-C语言实验-数字三角形问题
28 1
|
5月前
7-5 sdut-C语言实验-第k小的数
7-5 sdut-C语言实验-第k小的数
28 0