Everything s Okay
时间限制:1000 ms | 内存限制:65535 KB
难度:3
- 描述
-
输入N个数,M次查询。每次查询给出一个数x。
要求:每次查询输出前x个数中第i小的数。(i为第i次查询)
你可以假设M <= N,Xi
<= Xi+1 <= Xi+2 <= ……. <= Xm (Xm <= N).- 输入
- Line0:T
Line1: N,M
Line2…LineN+1:num1,......,numN
LineN+2…LineN+2+M:x1,……,xM
N < 30000, num < 2000000000
- 输出
- 每次查询输出前i小的数,单独一行。
详细格式请参考样例。
- 样例输入
-
1 7 4 3 1 -4 2 8 -1000 2 1 2 6 6
- 样例输出
-
3 3 1 2
-
#include<stdio.h> #include<stdlib.h> int com(const void *a,const void *b) { return *(int *)a-*(int *)b; } int main(void) { int t,n,m,k,i; int s[30001]; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); for(i=0;i<n;i++) scanf("%d",&s[i]); for(i=0;i<m;i++) { scanf("%d",&k); qsort(s,k,sizeof(s[0]),com); printf("%d\n",s[i]); } } return 0; }
时间: 2025-01-17 15:53:33