#SLT06A. 2026年S组模拟赛10连测第6场-T1 程老师的走廊灯

2026年S组模拟赛10连测第6场-T1 程老师的走廊灯

项目 内容
输入文件名 corr.in
输出文件名 corr.out
可执行文件名 corr
每个测试点时限 1.0 秒
内存限制 512 MiB
测试点数目 20
是否等分 是

结果比较方式为全文比较(过滤行末空格及文末换行)。

题目描述

程老师负责教学楼东侧一段笔直走廊的照明检修。后勤处在走廊里架了一条水平坐标轴,走廊从位置 00 一直延伸到位置 LL。仓库中存着一批灯具,共 nn 盏,第 ii 盏已经架设在位置 xix_i 处,它的额定照射半径是 rir_i:这盏灯点亮之后,地面上从 xi−rix_i - r_i 到 xi+rix_i + r_i 的这一整段走廊被它照亮,落在这一段之外的地方它一点也照不到。这批灯的额定半径有大有小,同一个半径值也可能出现在好几盏灯上。

灯只有点亮与不点亮两种状态。检修单上的验收是在一次送电中完成的:被选中的灯整段同时亮起,不存在调低亮度、只照半边或者一闪一闪的做法,选中一盏灯,就把它额定半径对应的那一整段算作照亮。

本次验收的判据只有一条:从位置 00 到位置 LL 的走廊上每一处都至少被一盏点亮的灯照到。这里的每一处包含位置不是整数的点——走廊上任何一个位置,只要它不在任何一盏点亮的灯的照亮范围之内,就算没照亮;而两盏点亮的灯的照亮范围恰好只在某一处相接时,相接的这一处同样算已经照亮。

程老师想知道:要让整段走廊每一处都亮起来,最少需要点亮多少盏灯;如果现有的这批灯不管怎么挑都做不到,就在验收单上记一次照明不达标,按约定输出 −1-1。

输入格式

从文件 corr.in 中读入数据。

  • 第一行两个整数 n,Ln, L,表示仓库中的灯数与走廊的长度;
  • 接下来 nn 行,每行两个整数 xi,rix_i, r_i,依次表示第 ii 盏灯架设的位置与额定照射半径。

输出格式

输出到文件 corr.out 中。

输出一行一个整数,表示让整段走廊每一处都亮起来最少需要点亮的灯数;若无论如何都做不到,输出 −1-1。

样例

4 10
1 2
4 2
7 4
9 1
2

样例 1 解释

四盏灯点亮后各自照亮的走廊分别是:第 11 盏照 [−1,3][-1, 3],第 22 盏照 [2,6][2, 6],第 33 盏照 [3,11][3, 11],第 44 盏照 [8,10][8, 10]。

位置 00 落在四段里只有第 11 盏的范围之内,所以第 11 盏必须点亮,它把走廊照到位置 33。位置 33 往右,还接得上的有第 22 盏(照到 66)和第 33 盏(照到 1111):只点第 11、第 22 两盏时,走廊只连到位置 66,位置 66 之后没有任何一盏点亮的灯照得到,照不满;换成第 11、第 33 两盏,照亮范围从 −1-1 一路连到 1111,[0,10][0, 10] 已经全部照到。只点一盏也照不满整条走廊,因此最少是 22 盏。

2 10
1 1
6 1
-1

样例 2 解释

第 11 盏照 [0,2][0, 2],第 22 盏照 [5,7][5, 7]。两盏全部点亮之后,位置 22 与位置 55 之间的走廊仍然没有任何一盏灯照得到;由于一共只有这两盏,任何一种点法都无法让整段走廊亮起来,因此输出 −1-1。

数据范围

对于所有测试数据,保证:

  • 1≤n≤1051 \le n \le 10^5,1≤L≤1091 \le L \le 10^9;
  • 0≤xi≤L0 \le x_i \le L,0≤ri≤1090 \le r_i \le 10^9。

各测试点的约束如下:

测试点 n≤n \le 特殊性质
1∼21\sim2 88 无
3∼63\sim6 1414
7∼107\sim10 1818
11∼1411\sim14 10310^3
15∼1815\sim18 10510^5
1919 A
2020 B
  • 特殊性质 A:所有 rir_i 相等。
  • 特殊性质 B:xix_i 按递增顺序给出。
难度 未评定
通过率 26.7%
尝试 15
通过 4
ID
3789
类型
传统题
Time Limit
1000ms
Memory Limit
512MiB
上传者