#P1756. Domino Puzzle
Domino Puzzle
本题没有可用的提交语言。
题目描述:多米诺骨牌
多米诺骨牌是一种使用小型长方形骨牌的游戏,每张骨牌表面由一条线分成两个方格,每个方格标有1至6个点(类似于骰子的点数)。现代多米诺游戏的基本规则是通过数字匹配将骨牌排列成行:一张骨牌的一端必须与另一张骨牌的一端数字相同。
现给定一个任意的多米诺骨牌集合,其中某些骨牌可以完全按规则排列成行,而另一些则不能。例如,由以下5张骨牌组成的集合:
- (1, 5)
- (1, 6)
- (5, 5)
- (2, 4)(两张)
无法排列成一行。但如果添加一张 (2, 5)(数字总和为7),则可以排列成如下形式:
(1,5)-(5,5)-(5,2)-(2,4)-(4,2)-(2,6)-(6,1)
然而,我们希望添加的骨牌数字总和最小。在上例中,若改为添加两张 (1, 2)(总和为6),则可排列成:
(1,5)-(5,5)-(5,2)-(2,1)-(1,2)-(2,4)-(4,2)-(2,6)-(6,1)
任务要求
编写程序,对给定的多米诺骨牌集合,找到一个可能为空的额外骨牌集合,使得:
- 原集合与额外集合的骨牌能按规则排列成行。
- 额外集合的骨牌数字总和最小。
- 若有多个解,输出任意一个。
输入格式
- 第一行:整数
N
(2 ≤ N ≤ 100),表示初始骨牌数量。 - 后续
N
行:每行两个1至6的整数(顺序无关),描述一张骨牌。
输出格式
- 第一行:额外骨牌的最小数字总和(若无需添加则输出0)。
- 第二行:额外骨牌的数量(若无则输出0)。
- 后续行:按输入格式输出额外骨牌(若无则省略)。
输入样例1
5
1 5
6 1
5 5
2 4
2 4
输出样例1
6
2
1 2
1 2
来源
Northeastern Europe 2000