AT_abc177_f [ABC177F] I hate Shortest Path Problem
题目描述
### 题目大意
有一个 $(H+1)$ 行 $W$ 列的矩阵,你每步可以在矩阵中向右或向下移动一个格子。其中,在第 $i\,(1 \le i \le H)$ 行中,你无法从左至右第 $A_i$ 至 $B_i$ 个格子向下走。对于每一个 $k\,(1 \le k \le H)$,求出你从第 $1$ 行的任意一个格子出发移动到第 $(k+1)$ 行的最少步数,若无法移动到则输出 `-1`。
数据范围:$1 \le H,W \le 2\times 10^5$,$1 \le A_i \le B_i \le W$。
输入格式
第一行两个整数 $H,W$,接下来 $H$ 行每行两个整数 $A_i,B_i$。
输出格式
共 $H$ 行,每行一个整数,第 $i$ 行的数字表示从第 $1$ 行移动到第 $(i+1)$ 行需要的最少步数,若无法移动到则为 `-1`。
### 样例解释
$k=1$ 时,其中一种答案最小的移动顺序为 $(1,1)\rightarrow (2,1)$;
$k=2$ 时,一种移动顺序为 $(1,1)\rightarrow (2,1)\rightarrow (2,2)\rightarrow (3,2)$;
$k=3$ 时,一种移动顺序为 $(1,1)\rightarrow (2,1)\rightarrow (2,2)\rightarrow (3,2)\rightarrow (3,3)\rightarrow (3,4)\rightarrow (4,4)$;
$k=4$ 时,无法从第 $1$ 行移动到第 $5$ 行。
(翻译 by @CarroT1212)
说明/提示
### 制約
- $ 1\ \leq\ H,W\ \leq\ 2\times\ 10^5 $
- $ 1\ \leq\ A_i\ \leq\ B_i\ \leq\ W $
### Sample Explanation 1
上から $ i $ マス目、左から $ j $ マス目のマスをマス $ (i,j) $ とします。 $ k=1 $ のとき、マス $ (1,1) $ → $ (2,1) $ のように $ 1 $ 回で移動できます。 $ k=2 $ のとき、マス $ (1,1) $ → $ (2,1) $ → $ (2,2) $ → $ (3,2) $ のように $ 3 $ 回で移動できます。 $ k=3 $ のとき、マス $ (1,1) $ → $ (2,1) $ → $ (2,2) $ → $ (3,2) $ → $ (3,3) $ → $ (3,4) $ → $ (4,4) $ のように $ 6 $ 回で移動できます。 $ k=4 $ のとき、上から $ 5 $ マス目のマスに移動する方法はありません。