#CF2167E. khba 爱睡觉

    ID: 6983 传统题 1000ms 256MiB 尝试: 1 已通过: 0 难度: 10 上传者: 标签>二分数据结构计算几何贪心模拟CodeforcesCodeforces Round 1062(Div4)Div4ECF2167E1600

khba 爱睡觉

题目描述

nn 个朋友站在一条数轴上,第 ii 个朋友的位置为 aia_i,所有位置都在区间 [0,x][0,x] 内。

你需要选择 kk 个互不相同的传送点位置,位置也必须在 [0,x][0,x] 内。

每个朋友会走向离自己最近的传送点。请你选择这 kk 个传送点,使得“最先到达传送点的朋友”所需时间尽可能大。

也就是说,需要最大化所有朋友到最近传送点距离中的最小值。

如果有多种最优方案,输出任意一种。

输入格式

第一行一个整数 tt,表示测试组数。

每组测试数据包含两行:

第一行三个整数 n,k,xn,k,x

第二行 nn 个整数 a1,a2,,ana_1,a_2,\dots,a_n,表示朋友的位置。

保证所有测试数据的 nn 之和不超过 21052\cdot 10^5kk 之和不超过 21052\cdot 10^5

输出格式

对于每组测试数据,输出一行 kk 个整数,表示选择的传送点位置。

这些位置必须互不相同,且都在 [0,x][0,x] 内。可以按任意顺序输出。

样例

10
4 1 4
1 0 2 4
5 5 4
0 1 2 3 4
2 1 4
4 0
3 4 6
2 4 3
3 2 12
6 12 0
4 3 12
8 12 0 4
1 1 1000000000
0
1 1 1000000000
1000000000
3 4 9
8 7 9
3 4 9
2 0 1
3
0 1 2 3 4
2
0 1 5 6
3 9
2 6 10
1000000000
0
0 1 2 3
6 7 8 9

样例说明

样例输出只是其中一种最优方案,顺序也可以不同。

第一组测试数据中,朋友位置为 [1,0,2,4][1,0,2,4],选择传送点 [3][3]。每个朋友到最近传送点的距离分别为 [2,3,1,1][2,3,1,1]

第二组测试数据中,朋友位置为 [0,1,2,3,4][0,1,2,3,4],选择传送点 [0,1,2,3,4][0,1,2,3,4]。所有朋友到最近传送点的距离都是 00

第三组测试数据中,朋友位置为 [4,0][4,0],选择传送点 [2][2]。两个朋友到传送点的距离都是 22

第四组测试数据中,朋友位置为 [2,4,3][2,4,3],选择传送点 [0,1,5,6][0,1,5,6]。三个朋友到最近传送点的距离分别为 [1,1,2][1,1,2]

第五组测试数据中,朋友位置为 [6,12,0][6,12,0],选择传送点 [3,9][3,9]。三个朋友到最近传送点的距离都是 33

数据范围

  • 1t1041 \le t \le 10^4
  • 1n,k21051 \le n,k \le 2\cdot 10^5
  • k1x109k-1 \le x \le 10^9
  • 0aix0 \le a_i \le x
  • 所有测试数据的 nn 之和不超过 21052\cdot 10^5
  • 所有测试数据的 kk 之和不超过 21052\cdot 10^5

来源

Codeforces Round 1062 (Div. 4), Problem E - khba Loves to Sleep!