[SNCPC2024] 致命公司

题目描述

Shirost 最近沉迷于一款名为《致命公司》的游戏。 在游戏中,玩家将作为“公司”的合同工,从废弃的工业星球收集废料。在探索的过程中,Shirost 将遇到一个名为弹簧头的怪物,弹簧头会在无人注视它时快速移动,但在被注视时则会保持不动。一旦接近,弹簧头就会立刻杀死 Shirost。 现在 Shirost 站在 $n$ 个无限长的通道的交汇点,他知道有 $m$ 个弹簧头,分别会在 $t_i$ 时刻出现在 $x_i$ 号通道距离他 $y_i$ 米远处。 对于每个时刻 $j$,以下三个事件将会依次发生: 1. 在该时刻开始时,满足 $t_i = j$ 的弹簧头会出现在 $x_i$ 号通道距离 Shirost $y_i$ 米远处。 2. Shirost 选择凝视任意一个通道。 3. 该通道内的所有弹簧头无法移动,而其他通道中**已经出现**的弹簧头会向他移动 $k$ 米,如果某个弹簧头到达他所在位置,则他将在时刻 $j$ 死亡。 Shirost 想知道他最晚可以活到哪个时刻。换句话说,如果 Shirost 最晚在时刻 $j$ 死亡,那么你需要输出 $j-1$。如果他不会死亡,则输出 $-1$。

输入输出格式

输入格式


输入第一行为三个整数 $n,m,k$ ($1 \leq n \leq 5 \times 10^5, 1 \leq m \leq 5 \times 10^5, 1 \leq k \leq 10^{18}$),由空格隔开,为无限长通道的个数,弹簧头的个数,弹簧头每时刻移动的距离。 接下来 $m$ 行,每行三个整数 $t_i,x_i,y_i$ ($1 \leq t_i \leq 10^{18}, 1 \leq x_i \leq n, 1 \leq y_i \leq 10^{18}$),由空格隔开,描述弹簧头出现的时刻,出现的通道编号,距离 Shirost 有多远。

输出格式


输出仅一行一个整数,表示 Shirost 最晚可以活到哪个时刻。如果他不会死亡,则输出 $-1$。

输入输出样例

输入样例 #1

2 3 2
1 1 6
2 2 7
3 1 8

输出样例 #1

6

输入样例 #2

114514 6 1919810
1 1 1
1 1 9
1 4 1
1 5 9
1 1 8
1 4 10

输出样例 #2

0

说明

Shirost 可以按如下所述行动: | 时刻 | 凝视的通道 | 弹簧头 $1$ 距离 | 弹簧头 $2$ 距离 | 弹簧头 $3$ 距离 | | :----------: | :----------: | :----------: | :----------: | :----------: | | 1 | 1 | 6 | | | | 2 | 1 | 6 | 5 | | | 3 | 2 | 4 | 5 | 6 | | 4 | 1 | 4 | 3 | 6 | | 5 | 2 | 2 | 3 | 4 | | 6 | 1 | 2 | 1 | 4 | 在第 $7$ 时刻,无论看哪个通道,Shirost 都会在该时刻内被弹簧头杀死。所以答案是 $6$。