题目背景
试题来源:https://koi.or.kr/archives/。中文翻译做了少量本土化修改。
按照署名—非商业性使用—相同方式共享 4.0 协议国际版进行授权。
题目描述
在一条数轴表示的直线道路上,安装了 N 盏路灯。每盏路灯的位置按从左到右依次为 A1<A2<⋯<AN。
我们定义某个位置 x 的“黑暗程度”为该位置到所有路灯之间距离的最小值。即,黑暗程度等于数列 ∣A1−x∣,∣A2−x∣,…,∣AN−x∣ 中的最小值。其中,∣y∣ 表示 y 的绝对值,若 y≥0,则 ∣y∣=y;若 y<0,则 ∣y∣=−y。
例如,若 N=3,且路灯分别位于 A1=1、A2=4、A3=8,那么从位置 x=0 到 x=10 的黑暗程度如下:
| 位置 x |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
| 黑暗程度 |
1 |
0 |
1 |
0 |
1 |
2 |
1 |
0 |
1 |
2 |
| 是否有灯 |
|
O |
|
O |
|
O |
|
给定一个整数 L,我们关心从 x=0 到 x=L 这 L+1 个整数位置的黑暗程度。请你编程,输出其中按黑暗程度从小到大排序后的前 K 小的值。
输入格式
第一行输入三个整数 L, N, K,用空格隔开。
第二行输入 N 个整数 A1,A2,…,AN,表示每盏路灯的位置,以空格隔开。
输出格式
输出 K 行,第 i 行输出从小到大排序后的第 i 小黑暗程度值。
10 3 4
1 4 8
0
0
0
1
4 5 5
0 1 2 3 4
0
0
0
0
0
7 1 4
3
0
1
1
2
9 4 10
0 3 6 9
0
0
0
0
1
1
1
1
1
1
提示
约束条件
- 所有输入为整数。
- 1≤L≤1018
- 1≤N≤3×105
- 1≤K≤5×105
- K≤L+1
- 0≤A1<A2<⋯<AN≤L
子问题
- (10 分)N=1
- (20 分)N≤2500, L≤2500
- (15 分)2≤N 且 N−1 整除 L,且 Ai=N−1L×(i−1)
- (20 分)L≤5×106
- (35 分)无额外限制条件
翻译由 ChatGPT-4o 完成