问题 6806 --余数中位数

6806: 余数中位数

时间限制: 1 Sec  内存限制: 256 MB
提交: 11  解决: 2
[提交][状态][命题人:]

题目描述

给定长度为 n 的整数序列 a[1],a[2],...,a[n] 。
有 q 次询问,每次询问给定一个正整数 m ,设 b[i]=a[i]%m ,其中 % 为取模操作。你需要回答序列 b[1],b[2],...,b[n] 的中位数为多少。

定义一个长度为 n 的序列的中位数为将序列从小到大排序后,
· 若 n 为偶数,则第 (n+2)/2 个数为中位数;
· 若 n 为奇数,则第 (n+1)/2 个数为中位数;

输入

第一行输入一个整数 T (1≤T≤10^4) ,表示数据组数。
每组数据第一行包含两个整数 n,q (1≤n,q≤10^5) ,表示序列长度和询问数。
每组数据第二行包含 n 个整数 a[1],a[2],...,a[n] (1≤a[i]≤n) ,表示序列 a 。
接下来 q 行,每行包含一个正整数 m (1≤m≤n) ,表示询问。

保证所有的 n 之和与 q 之和均不超过 10^5 。

输出

对于每组数据,输出一行包含 q 个整数,分别表示 q 次询问的答案。
样例输入
Copy
2
5 5
1 2 3 4 5
1
2
3
4
5
6 3
1 2 6 4 1 3
2
1
5
样例输出
Copy
0 1 1 1 2 
1 0 2

提示

来源

[提交][状态]