#2164. 徐老师的机器分裂

徐老师的机器分裂

题目描述

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

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

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

这台机器人一开始的电量为 xx,动力强度为 yy

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

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

但是分裂出来的两台机器人规格却不同,两台机器人的规格分别如下

  • 一台机器人的规格为:电量 xx,动力强度 x+y2\lfloor \frac{x+y}{2} \rfloor
  • 一台机器人的规格为:电量 x+y2+1\lfloor \frac{x+y}{2} \rfloor +1,动力强度 yy

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

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

输入格式

输入第一行包含两个整数 x,yx,y,表示一开始徐老师这台机器人的规格

输出格式

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

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

数据范围

对于 10%10\% 的数据保证 x=yx=y

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

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

样例输入1

1 10

样例输出1

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)