[ABC349] D - Divide Interval

D - Divide Interval

Time Limit: 2 sec / Memory Limit: 1024 MB

分数: 450 分

题面

对于非负整数 ,令 表示将从 的整数按顺序排列形成的序列 。此外,如果一个序列可以表示为使用非负整数 构造的 ,则该序列被称为好序列。

给定非负整数 。将序列 分割为尽可能少的好序列,并输出好序列的数量以及分割方式。更具体地,找到最小正整数 ,使得存在一组非负整数对 满足以下条件,并输出这样的

  • 是好序列。

可以证明只有一种分割方式可以使得 最小。

限制条件

  • 所有输入值均为整数。

输入

输入以以下格式从标准输入中给出:

输出

以以下格式输出答案:




注意,对 应以升序输出。


输入样例 1

3 19

输出样例 1

5
3 4
4 8
8 16
16 18
18 19

可以被分割为以下五个好序列,这是最小可能数量:


输入样例 2

0 1024

输出样例 2

1
0 1024


输入样例 3

3940649673945088 11549545024454656

输出样例 3

8
3940649673945088 3940649673949184
3940649673949184 4503599627370496
4503599627370496 9007199254740992
9007199254740992 11258999068426240
11258999068426240 11540474045136896
11540474045136896 11549270138159104
11549270138159104 11549545016066048
11549545016066048 11549545024454656

0条搜索结果。