#P7921. [Kubic] Division

[Kubic] Division

题目背景

建议先看 F 题题目背景。

题目描述

你有一个可重集,初始其中只有一个正整数 nn

你每次可以选择当前在集合中的一个正整数 xx 并删去,再指定一个正整数 yy(不要求在集合中)满足 x>yx>y,并往集合中加入 yyxyx-y

你需要保证在任意时刻,集合中的最大值严格小于集合中的最小值的 22 倍。

求出你最多能进行多少次操作,并输出构造方案

输入数据保证最多能进行的操作次数不超过 10610^6

输入格式

共一行,一个整数 nn

输出格式

第一行,一个整数 mm,表示你所构造的方案的操作次数。

接下来 mm 行,每行两个整数 x,yx,y,表示一次操作(x,yx,y 的意义与题面中一致)。

你需要保证 x>yx>yxx 在当前集合中出现过。

8
2
8 3
5 2
30
5
30 12
18 8
12 6
10 5
8 4

提示

对于 100%100\% 的数据,1n1091\le n\le 10^9

分值 nn
Subtask1\operatorname{Subtask}1 1010 10\le 10
Subtask2\operatorname{Subtask}2 2020 100\le 100
Subtask3\operatorname{Subtask}3 3030 106\le 10^6
Subtask4\operatorname{Subtask}4 4040 无特殊限制

评分方法

以下情况将会使你在该测试点获得 00 分:

  • 输出格式不满足要求。

  • 输出多余信息(包括空格和换行符)

  • 构造的方案操作次数与标准答案不同。

  • 构造的方案不符合题目要求。

  • 时间超限。

如果没有上述情况,你在该测试点获得满分。

保证 SPJ 占用不超过 100ms,10MB100\operatorname{ms},10\operatorname{MB}

样例解释 1

一种操作过程如下:

8

3 5

2 3 3

可以证明没有更优的方案。

样例解释 2

一种操作过程如下:

30

12 18

8 10 12

6 6 8 10

5 5 6 6 8

4 4 5 5 6 6

可以证明没有更优的方案。