#753. 【基础】飞船赛

【基础】飞船赛

说明

NN个飞船进行比赛,它们的跑道为直线并互相平行。他们有一条共同的起跑线,但第ii个飞船从起跑线后XiX_i处开始比赛(XiX_i各不相同),比赛开始后,它能在零时间内加速到最大速度ViV_i并永远保持此速度。比赛没有终点,即会永远进行下去。

你的任务是算出一共有多少次“超车”,并按时间顺序输出前10000次。保证在同一时刻不会有两个以上的飞船位于同一位置。

输入格式

第1行:N0N250000N(0\leqslant N\leqslant 250000)

第(i+1)行:XiX_iVi0Xi10000000<Vi<100V_i(0\leqslant X_i\leqslant 1000000 0<V_i<100)

NN行是XiX_i按升序排列的。

输出格式

第1行:“超车”次数(保证不超过1000000,?或在此数量级上)。

接下来按时间顺序每行输出iijj,表示第ii个飞船超过第jj个飞船。若两次超车在同一时刻发生,则按“超车”地点与起跑线的距离由小到大排序。

若“超车”次数大于10000,则输出前10000次,否则输出全部。

样例

4
0 2
2 1
3 8
6 3
2
3 4
1 2

提示

50%的数据: n100,m150n\leqslant 100, m\leqslant 150

100%的数据: $n\leqslant 100000, m\leqslant 200000, x_i\leqslant 100000000 ,v_i\leqslant 100$