AT_abc388_f [ABC388F] Dangerous Sugoroku

题目描述

有 $N$ 个格子排成一行,依次编号为 $1, 2, \ldots, N$。 给定 $M$ 个整数对 $(L_1, R_1), (L_2, R_2), \ldots, (L_M, R_M)$。 如果对于某个 $i$,格子 $j$ 满足 $L_i \leq j \leq R_i$,那么且仅当这种情况成立时,格子 $j$ 被定义为**坏格子**。 请判断是否可以通过以下操作从格子 $1$ 移动到格子 $N$: - 当前所在格子为 $x$。选择一个整数 $i$,使得以下所有条件都成立,然后移动到格子 $x + i$: - $A \leq i \leq B$ - $x + i \leq N$ - 格子 $x + i$ 不是坏格子

输入格式

输入以以下格式从标准输入给出。 > $N$ $M$ $A$ $B$ $L_1$ $R_1$ $L_2$ $R_2$ $\vdots$ $L_M$ $R_M$

输出格式

如果可以通过题目描述中的操作从格子 $1$ 移动到格子 $N$,输出 `Yes`,否则输出 `No`。

说明/提示

### 限制条件 - $2 \leq N \leq 10^{12}$ - $0 \leq M \leq 2 \times 10^4$ - $1 \leq A \leq B \leq 20$ - $1 < L_i \leq R_i < N\ (1 \leq i \leq M)$ - $R_i < L_{i+1}\ (1 \leq i \leq M-1)$ - 所有输入的值均为整数 ### 样例解释 1 可以按 $1 \to 6 \to 9 \to 12 \to 16 \to 21 \to 24$ 这样的方式移动到格子 $N$。 由 ChatGPT 4.1 翻译