A. 数组的中位数
单个测试点时间限制:1 秒
单个测试点内存限制:256 兆字节
给定一个长度为 n 的整数数组 a。
数组 q1,q2,…,qk 的中位数定义为:将 q 按非降序排序后得到数组 p,p⌈2k⌉ 即为中位数。
例如:
- 数组 [9,5,1,2,6] 的中位数是 5,因为排序后为 [1,2,5,6,9],下标 ⌈25⌉=3 上的数是 5。
- 数组 [9,2,8,3] 的中位数是 3,因为排序后为 [2,3,8,9],下标 ⌈24⌉=2 上的数是 3。
每次操作你可以选择一个下标 i(1≤i≤n)并将 ai 增加 1。
你的任务是求出最少操作次数,使得数组的中位数严格变大。
注意:数组中可以包含重复数字。
输入格式
输入包含多组测试数据。
第一行一个整数 t(1≤t≤104),表示测试用例数量。
每组测试用例:
第一行一个整数 n(1≤n≤105),表示数组长度。
第二行 n 个整数 a1,a2,…,an(1≤ai≤109)。
保证所有测试用例的 n 之和不超过 2×105。
输出格式
对于每组测试用例,输出一个整数,表示使中位数变大所需的最少操作次数。
样例输入
8
3
2 2 8
4
7 3 3 1
1
1000000000
5
5 5 5 4 5
6
2 1 2 3 1 4
2
1 2
2
1 1
4
5 5 5 5
样例输出
1
2
1
3
2
1
2
3