给定一个整数 $K$,请生成一棵节点数最少的树,使得树中恰好有 $K$ 对节点 $(X, Y)$ 满足 $X$ 是 $Y$ 的祖先。
输入格式
输入包含一个整数 $K$,表示满足特定属性的节点对数量。
输出格式
输出包含 $N+1$ 行,表示生成的树,节点编号从 $0$ 开始。
第一行包含一个整数 $N$,表示树中的节点数量。
接下来的 $N$ 行,每行包含两个整数 $X$ 和 $T$,中间用空格隔开,含义如下:节点 $T$ 是节点 $X$ 的直接祖先。如果节点 $X$ 没有直接祖先,则 $T$ 的值为 $-1$。
数据范围
| 子任务 | 分值 | 限制 |
|---|---|---|
| 1 | 20 分 | $0 \le K \le 50$ |
| 2 | 30 分 | $0 \le K \le 500$ |
| 3 | 50 分 | $0 \le K \le 10^9$ |
对于每个测试点,得分规则如下: 1. 若 $N_{participant} = N_{committee}$,得 100% 的分数。 2. 若 $N_{participant} \in [N_{committee} + 1, N_{committee} + 2]$,得 80% 的分数。 3. 若 $N_{participant} \ge N_{committee} + 3$,得 $P\%$ 的分数,其中 $P = \frac{N_{committee} + 3}{N_{participant}} \times 50$。
注:$N_{committee}$ 是满足该属性的树所能拥有的最少节点数。
样例
样例输入 1
2
样例输出 1
3 0 -1 1 0 2 0
说明 1
共有 2 对 $(X, Y)$ 满足 $X$ 是 $Y$ 的祖先: 1. $(X, Y) = (0, 1)$ 2. $(X, Y) = (0, 2)$
样例输入 2
4
样例输出 2
4 0 -1 1 0 2 0 3 2
说明 2
共有 4 对 $(X, Y)$ 满足 $X$ 是 $Y$ 的祖先: 1. $(X, Y) = (0, 1)$ 2. $(X, Y) = (0, 2)$ 3. $(X, Y) = (0, 3)$ 4. $(X, Y) = (2, 3)$
Figure 1. 样例 1 对应的树结构