题目描述
对于非负整数 l,r (l < r) ,令 S(l,r) 表示由 l 到 r−1 的整数按顺序排列形成的序列。
此外,当且仅当一个序列可以表示为 S(2ij,2i(j+1)) 时,其中 i 和 j 为非负整数,我们称这个序列为好序列。
给定非负整数 L,R (L< R)。
将序列 S(L,R) 划分为最少数量的好序列,并输出划分数量和划分方案。
更具体地说,找到最小的正整数 M,使得存在一个非负整数对序列满 (l1,r1),(l2,r2),…,(lM,rM) 足以下条件,并输出这样的(l1,r1),(l2,r2),…,(lM,rM) 。
- L=l1 < r1=l2 < r2=⋯=lM < rM=R
- S(l1,r1),S(l2,r2),…,S(lM,rM) 都是好序列。
可以证明,使 M 最小化的划分方案是唯一的。
输入格式
输入数据将以以下格式通过标准输入给出。
L R
输出格式
请按照以下格式输出。
M
l1 r1
⋮
lM rM
对 (l1,r1),…,(lM,rM) 应按升序输出。
输入输出样例 #1
输入 #1
3 19
输出 #1
5
3 4
4 8
8 16
16 18
18 19
输入输出样例 #2
输入 #2
0 1024
输出 #2
1
0 1024
输入输出样例 #3
输入 #3
3940649673945088 11549545024454656
输出 #3
8
3940649673945088 3940649673949184
3940649673949184 4503599627370496
4503599627370496 9007199254740992
9007199254740992 11258999068426240
11258999068426240 11540474045136896
11540474045136896 11549270138159104
11549270138159104 11549545016066048
11549545016066048 11549545024454656
说明/提示
样例说明 1
$ S(3,19)=(3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18) $ 可以被划分为以下五个好序列。
这是最小可能的数量:
S(3,4)=S(20⋅ 3,20⋅4)=(3)
S(4,8)=S(22⋅ 1,22⋅ 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(21⋅ 8,21⋅ 9)=(16,17) -
S(18,19)=S(20⋅ 18,20⋅ 19)=(18)
数据范围
- 0≤ L< R≤ 260
- 所有输入值都是整数