#HK5449. 「UOI 2018 Stage 4 Day1」章鱼
「UOI 2018 Stage 4 Day1」章鱼
题目描述
题目译自 Ukrainian Olympiads in Informatics 2018 Stage 4 Day1 T3. Восьминiг
最近,彼得里克从海边度假回到家中。彼得里克非常喜欢动物,这次度假给他留下最深刻印象的就是各种各样的动物。其中,他最喜欢的是章鱼。
回到家后,彼得里克立刻想要用自己的积木套装建造很多章鱼。这个积木套装由一组灵活的棒子和圆盘组成,可以用棒子连接圆盘。共有 个圆盘,每个圆盘有 个孔,可以插入棒子。棒子不能将一个圆盘连接到自身,且任意两个圆盘之间最多只能用一根棒子连接。
在彼得里克的想象中,章鱼的结构如下:
- 章鱼的身体由三个或更多的圆盘组成,这些圆盘用棒子连接成一个环;
- 章鱼的触手由多个圆盘组成,这些圆盘用棒子依次连接;
- 触手可以分叉,但不能合并;
- 每条触手通过一根棒子连接到章鱼身体上的某个圆盘。
请注意,章鱼可以有多个触手,也可能一条触手都没有。此外,多条触手可以连接到身体上的同一个圆盘。

帮助彼得里克建造章鱼,要求满足以下条件:
- 必须使用所有的圆盘;
- 每个圆盘上的每个孔都必须插入一根棒子;
- 在某些子任务中,需要使建造的章鱼数量尽可能多。
输入格式
输入文件的第一行包含一个整数 ,表示彼得里克积木套装中的圆盘数量。
第二行包含 个整数 ,表示第 个圆盘上的孔数。
第三行包含一个整数 ,值为 表示不需要最大化章鱼数量,值为 表示需要最大化章鱼数量。
输出格式
输出文件的第一行应输出 Yes,如果可以建造章鱼;否则输出 No。如果答案为 Yes,则输出一个整数 ,表示章鱼的数量。接下来输出 行,第 行包含两个整数 和 ,分别表示圆盘 所属的章鱼编号,以及与圆盘 相连的、距离章鱼身体更近的相邻圆盘的编号。如果圆盘 属于章鱼的身体,则认为 。
为更好地理解输出格式,请参考后面的样例。
9
2 1 2 1 1 1 4 3 3
1
Yes
1
1 -1
1 7
1 -1
1 7
1 8
1 9
1 -1
1 -1
1 -1
11
2 2 2 3 3 3 2 2 1 1 1
1
Yes
2
2 -1
2 -1
2 -1
2 -1
2 -1
1 -1
1 -1
1 -1
2 4
2 5
1 6
第一个样例对应图示中的第一个章鱼,第二个样例对应图示中的第二个和第三个章鱼。
请注意,对于给出的样例,可能存在其他满足所有要求的构造方案。
4
2 3 2 3
1
No
数据范围与提示
详细子任务附加限制及分值如下表所示:
| 子任务 | 分值 | 附加限制 |
|---|---|---|
| 对于所有 ,,不需要最大化章鱼数量 | ||
| 对于所有 ,,需要最大化章鱼数量 | ||
| 不需要最大化章鱼数量 | ||
| 需要最大化章鱼数量 |