奶牛喝水
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
【问题描述】
约翰的 N 头奶牛正在排队喝水,第 i 头奶牛的身高为 Hi。
只有一个水龙头,初始高度为 0。第一头牛只能把头趴到地上去喝水,非常不方便。
为了使后面的奶牛喝水方便,约翰决定适时调整水龙头的高度。
当第 j ( 1 ≤ j ≤ N 且 j 为奇数 ) 头奶牛喝完水后,约翰就会计算一次水龙头的合适高度。
约翰认为,水龙头的合适高度为已经喝过水的奶牛的身高的中位数。约翰每次计算完成后,如果当前水龙头的高度不是合适的高度,那么他就要调整水龙头的高度。
问:约翰需要调整多少次水龙头?并依次输出约翰每次调整后的水龙头的高度。
多组数据。
【输入格式】
第一行:一个整数 T,代表数据组数。
对于每组数据:
- 第一行:一个整数 N;
- 接下来一行:N 个整数 Hi。
【输出格式】
共 2T 行,每组数据的答案占两行:
- 第一行:一个整数 K,表示约翰调整水龙头的次数。
- 第二行:K 个整数,依次表示约翰每次调整后水龙头的高度。数据间以一个空格隔开。
【输入样例】
3
9
1 2 3 4 5 6 7 8 9
9
9 8 7 6 5 4 3 2 1
4
22 44 11 33
【输出样例】
5
1 2 3 4 5
5
9 8 7 6 5
1
22
【数据范围】
共 5 个测试点,全部满足:。其中:
- 测试点 1:T=10,N=100
- 测试点 2:T=1000, N=1000
- 测试点 3-5:T=500, N=10000
注意:有些测试点数据量较大,请使用较快的读入和输出方式。