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) $