#P9101. [PA2020] Skierowany graf acykliczny

[PA2020] Skierowany graf acykliczny

题目描述

题目译自 PA 2020 Runda 5 Skierowany graf acykliczny

正如名字所示,有向无环图(Directed Acyclic Graph,简称 DAG)是一个无环的有向图。

如果我们在这样一个图中选择两个节点,我们可以计算出这些节点之间存在多少条不同的有向路径。如果其中一条路径包含一条边而另一条不包含这条边,我们就认为这两条路径是不同的。

你的任务是构造一个 nn 个节点(编号从 11nn)的有向无环图,其中从节点 11 到节点 nn 正好有 kk 条路径。你的图最多可以有 100100 个节点,每个节点最多可以有两条出边,而且不能包含重边(即如果一个节点有两条出边,它们必须通向不同的节点)。可以证明,对于每一个满足输入中约束条件的 kk,都可以构造一个满足条件的图。

输入格式

一行一个整数 kk

输出格式

第一行输出一个整数 nn,表示你构造的图中节点的个数。

接下来 nn 行,每行两个整数。第 ii 行表示以编号为 ii 的节点为起点的出边到达的节点编号。这两个数中任何一个都可以是 1-1,表示不存在这条边。如果两个数都不是 1-1,那这两个数不应该相等。

如果有许多满足条件的图,你可以输出任何一个。注意你不需要最小化节点个数,且在限制之下图节点个数是足够的。

3
6
3 5
6 -1
2 6
2 6
6 -1
-1 -1

提示

样例 1 解释

下图展示了输出中 66 个节点的有向无环图,从 1166 有三条路径:1326,1361\to 3\to 2\to 6,1\to 3\to 61561\to 5\to 6


数据范围

本题采用捆绑测试

对于 100%100\% 的数据,保证 1k1091\le k\le 10^92n1002\le n\le 100