P15743 [JAG 2024 Summer Camp #3] Tower Defense

题目描述

有 $M + 1$ 个单元格按顺序标记为 $0$ 到 $M$。单元格 $0$ 包含一个基地,单元格 $M$ 包含一个血量为 $H$ 的怪物。在单元格附近部署了 $N$ 名士兵。士兵 $i$ 的攻击范围是从单元格 $L_i$ 到 $R_i$(即单元格 $L_i, L_i + 1, \ldots, R_i$)。 每个回合,怪物和士兵按顺序执行以下行动(先是怪物,然后是士兵): - **怪物**:如果怪物的血量大于等于 $1$ 且它不在单元格 $0$,则它向基地方向移动一个单元格(即移动到编号小 $1$ 的单元格)。 - **士兵**:任何攻击范围包含怪物当前所在单元格的士兵会攻击怪物,使其血量减少 $1$。 如果怪物的血量在到达单元格 $0$ 之前降至 $0$ 或以下,则怪物在该单元格死亡,防御成功,游戏结束。如果怪物在血量未降至 $0$ 或以下的情况下到达单元格 $0$,则防御失败,游戏结束。 判断防御是否会成功,如果成功,找出怪物将死亡的单元格编号。

输入格式

输入包含一个单独的测试用例,格式如下: $$ \begin{aligned} &N \ M \ H \\ &L_1 \ R_1 \\ &\vdots \\ &L_N \ R_N \end{aligned} $$ 第一行包含三个整数 $N$、$M$ 和 $H$,分别表示士兵数量、单元格数量和怪物的血量。$N$ 在 $1$ 到 $100,000$ 之间(含端点)。$M$ 在 $2$ 到 $10^6$ 之间(含端点)。$H$ 在 $1$ 到 $10^{11}$ 之间(含端点)。 接下来的 $N$ 行每行包含两个整数 $L_i$ 和 $R_i$,表示第 $i$ 名士兵的攻击范围区间。$L_i$ 和 $R_i$ 均在 $1$ 到 $M - 1$ 之间(含端点)。保证 $L_i$ 小于等于 $R_i$。

输出格式

输出一个整数。如果防御成功,输出怪物将死亡的单元格编号;否则输出 $-1$。

说明/提示

翻译由 DeepSeek V3.2 完成