AT_abc349_d [ABC349D] Divide Interval
Description
[problemUrl]: https://atcoder.jp/contests/abc349/tasks/abc349_d
非負整数 $ l,r\ (l\
Input Format
入力は以下の形式で標準入力から与えられる。
> $ L $ $ R $
Output Format
以下の形式にしたがって出力せよ。
> $ M $ $ l_1 $ $ r_1 $ $ \vdots $ $ l_M $ $ r_M $
$ (l_1,r_1),\dots,(l_M,r_M) $ を**昇順**で出力することに注意せよ。
Explanation/Hint
### 制約
- $ 0\leq\ L\lt\ R\leq\ 2^{60} $
- 入力は全て整数
### Sample Explanation 1
$ S(3,19)=(3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18) $ です。これは以下の $ 5 $ つの良い数列に分割でき、これが個数が最小となるような分割方法です。 - $ S(3,4)=S(2^0\cdot\ 3,2^0\cdot4)=(3) $ - $ S(4,8)=S(2^2\cdot\ 1,2^2\cdot\ 2)=(4,5,6,7) $ - $ S(8,16)=S(2^3\cdot\ 1,2^3\cdot\ 2)=(8,9,10,11,12,13,14,15) $ - $ S(16,18)=S(2^1\cdot\ 8,2^1\cdot\ 9)=(16,17) $ - $ S(18,19)=S(2^0\cdot\ 18,2^0\cdot\ 19)=(18) $