3923: 张老师的机器分裂

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:0 解决:0

题目描述

众所周知,张老师有一个很有趣的机器人,除了不会转身以外什么都会

这天张老师一觉睡醒,发现这个机器人居然开始了自我分裂!

经过一段时间的观察,张老师发现,机器人的分裂和他的电量和动力强度有关

这台机器人一开始的电量为 $x$,动力强度为 $y$

张老师发现,当电量低于动力强度的两倍时,它就会发生分裂

形式化的说就是当 $2 * x \leq y$ 时机器人会发生分裂,一台机器人将分裂成两台机器人!

但是分裂出来的两台机器人规格却不同,两台机器人的规格分别如下
- 一台机器人的规格为:电量 $x$,动力强度 $\lfloor \frac{x+y}{2} \rfloor$
- 一台机器人的规格为:电量 $\lfloor \frac{x+y}{2} \rfloor +1$,动力强度 $y$

而分裂出来的机器人又会继续分裂

现在张老师很好奇,如果等待足够长的时间,直到所有机器人都分裂完毕,最终会有几台机器人,并且每台机器人的规格分别是什么?

输入

输入第一行包含两个整数 $x,y$,表示一开始张老师这台机器人的规格
对于 $10\%$ 的数据保证 $x=y$

对于另外 $10\%$ 的数据保证 $x=1$

对于 $100\%$ 的数据保证 $1 \leq x \leq y \leq 1000000$


输出

输出第一行包含一个整数 $n$ 表示最终的机器人数量

接下来 $n$ 行每行包含两个整数 $a_i,b_i$,分别表示一台机器人的规格,并且将所有机器人按照电量大小从大到小排序,如果电量一样则按照动力强度从小到大排序

样例输入 复制

1 10

样例输出 复制

5
6 10
4 5
3 3
2 2
1 1

提示

 样例解释1

分裂过程如下:

- `(1,10)`
- `(1,5)`、`(6,10)`
- `(1,3)`、`(4,5)`、`(6,10)`
- `(1,2)`、`(3,3)`、`(4,5)`、`(6,10)`
- `(1,1)`、`(2,2)`、`(3,3)`、`(4,5)`、`(6,10)`