传统题 1000ms 256MiB

奶牛喝水

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

附加文件

【问题描述】

约翰的 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 个测试点,全部满足:1T103,1N104,1Hi<2311 ≤ T ≤ 10^3, 1 ≤ N ≤ 10^4, 1 ≤ Hi < 2^{31}。其中:

  • 测试点 1:T=10,N=100
  • 测试点 2:T=1000, N=1000
  • 测试点 3-5:T=500, N=10000

注意:有些测试点数据量较大,请使用较快的读入和输出方式。

2025-04-07

未参加
状态
已结束
规则
OI
题目
6
开始于
2025-4-7 8:30
结束于
2025-4-7 12:00
持续时间
3.5 小时
主持人
参赛人数
9