AT_arc175_c [ARC175C] Jumping Through Intervals
Description
[problemUrl]: https://atcoder.jp/contests/arc175/tasks/arc175_c
$ N $ 個の整数組 $ (L_1,\ R_1),\ (L_2,\ R_2),\ \dots,\ (L_N,\ R_N) $ が与えられます.ここで,全ての $ 1\leq\ i\leq\ N $ に対して $ L_i\ \leq\ R_i $ が満たされています.
$ N $ 個の整数からなる列 $ A\ =\ (A_1,\ A_2,\ \ldots,\ A_N) $ であって,以下の条件を満たすものを**良い整数列**と呼びます.
- 全ての $ 1\leq\ i\leq\ N $ に対して,$ L_i\ \leq\ A_i\ \leq\ R_i $ である.
$ \displaystyle\ \sum_{i\ =\ 1}^{N-1}\ |A_{i+1}\ -\ A_{i}| $ を最小にするような**良い整数列** $ A $ のうち,辞書順で最小のものを求めてください.
数列の辞書順とは数列 $ S\ =\ (S_1,S_2,\ldots,S_{|S|}) $ が数列 $ T\ =\ (T_1,T_2,\ldots,T_{|T|}) $ より**辞書順で小さい**とは,下記の 1. と 2. のどちらかが成り立つことを言います. ここで,$ |S|,\ |T| $ はそれぞれ $ S,\ T $ の長さを表します.
1. $ |S|\ \lt\ |T| $ かつ $ (S_1,S_2,\ldots,S_{|S|})\ =\ (T_1,T_2,\ldots,T_{|S|}) $.
2. ある整数 $ 1\ \leq\ i\ \leq\ \min\lbrace\ |S|,\ |T|\ \rbrace $ が存在して,下記の $ 2 $ つがともに成り立つ.
- $ (S_1,S_2,\ldots,S_{i-1})\ =\ (T_1,T_2,\ldots,T_{i-1}) $.
- $ S_i $ が $ T_i $ より(数として)小さい.
Input Format
入力は以下の形式で標準入力から与えられる.
> $ N $ $ L_1 $ $ R_1 $ $ L_2 $ $ R_2 $ $ \vdots $ $ L_N $ $ R_N $
Output Format
答えを以下の形式で $ 1 $ 行に出力せよ.
> $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $
Explanation/Hint
### 制約
- 入力される数値は全て整数
- $ 2\ \leq\ N\ \leq\ 5\ \times\ 10^5 $
- $ 0\ \leq\ L_i\ \leq\ R_i\ \leq\ 10^9 $
### Sample Explanation 1
$ (A_1,\ A_2,\ A_3,\ A_4)\ =\ (8,\ 8,\ 4,\ 5) $ は良い整数列です.このとき $ \sum_{i\ =\ 1}^{N-1}\ |A_{i+1}\ -\ A_{i}|\ =\ |8\ -\ 8|\ +\ |4\ -\ 8|\ +\ |5\ -\ 4|\ =\ 5 $ となり,これが $ \sum_{i\ =\ 1}^{N-1}\ |A_{i+1}\ -\ A_{i}| $ の最小の値です.
### Sample Explanation 2
$ \sum_{i\ =\ 1}^{N-1}\ |A_{i+1}\ -\ A_{i}| $ が最小となる良い数列 $ A $ が複数あるときは,そのうち辞書順で最小のものを出力することに注意してください.