测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A16744. khba Loves to Sleep!

编程题 普及/提高-

题目描述

khba 有 $n$ 个朋友,每个人都站在一条线上,其位置为 $a_i$,且每个人的位置都在 $[0, x]$ 区间内。

他们都想要来到 khba 身边。其中,有一个朋友 Isamatdin 给了 khba $k$ 个传送装置(teleport)。每个人会选择距离自己最近的传送装置(选择距离最近的那个)行走过去。当朋友到达传送装置时,khba 和这个朋友就可以立刻见面。

但是 khba 太累了,在朋友们走过来的时候他会一直睡觉。现在,他希望选择 $k$ 个传送装置的位置,使得这些位置互不相同且都位于区间 $[0,x]$ 内,从而最大化最先到达传送装置的朋友所需要的时间。假设所有朋友的移动速度相同。

由于 khba 不擅长计算,你需要输出选择的 $k$ 个传送装置的位置。

输入格式

每个测试包含多组数据。第一行包含一个整数 $t$($1 \leq t \leq 10^4$)——测试用例的数量。接下来是各组数据的描述。

每组数据的第一行包含三个整数 $n$,$k$ 和 $x$($1 \leq n, k \leq 2 \cdot 10^5$,$k-1 \leq x \leq 10^9$)——朋友数量、需要选择的传送装置数量和传送装置可选位置的区间范围。

每组数据的第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($0 \leq a_i \leq x$)——朋友们所在的位置。

保证所有测试数据中 $n$ 的总和不超过 $2 \cdot 10^5$。

保证所有测试数据中 $k$ 的总和不超过 $2 \cdot 10^5$。

输出格式

每组测试用例输出一行,包含 $k$ 个整数,表示所选择的传送装置的位置。这些位置必须互不相同且都在区间 $[0, x]$ 内。输出顺序可以任意。

如果有多种最优方案,可以任选一种输出。

输入输出样例

输入 #1
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
输出 #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:朋友位置为 $[1,0,2,4]$,选择传送装置位置 $[3]$。

每个朋友距离最近传送装置的最短时间分别为 $[2, 3, 1, 1]$。

样例 2:朋友位置为 $[0,1,2,3,4]$,选择传送装置位置 $[0,1,2,3,4]$。

每个朋友距离最近传送装置的最短时间均为 $[0, 0, 0, 0, 0]$。

样例 3:朋友位置为 $[4,0]$,选择传送装置位置 $[2]$。

每个朋友距离最近传送装置的最短时间都是 $[2, 2]$。

样例 4:朋友位置为 $[2,4,3]$,选择传送装置位置 $[0,1,5,6]$。

每个朋友距离最近传送装置的最短时间分别为 $[1, 1, 2]$。

样例 5:朋友位置为 $[6,12,0]$,选择传送装置位置 $[3,9]$。

每个朋友距离最近传送装置的最短时间都是 $[3, 3, 3]$。
上一题 去做题 下一题