多米诺难题
   
  
  在一个多米诺骨牌集合里,每个骨牌以两位1到6的数字标记。有些多米诺骨牌集合中的所有骨牌可以按首尾数字相同排成一行,但有些不能,例如集合中包含5块骨牌: (1, 5), (1, 6), (5, 5)和两张(2, 4),不能按首尾数字相同排成一行。 然而,如果我们加了一张(2,5)骨牌,则我们就可以将排成如下的一行。

    

  但是,更感兴趣的是这样的一行的骨牌上的数字总和是否最小。在上面的例子中,加入的牌为(2,5),它上面的数字和为7;而如果我们加入两块(1,2)骨牌,则它们上的数字总和却只有6,而且仍然可以使所有骨牌按首尾数字相同排成如下的一行。

    

  你的任务是写一个程序,对于给定的一个多米诺骨牌集合,找出一个具有最小的数字和的额外骨牌集合(也可能是空集),使得加上这个集合的骨牌后所得骨牌能按上面规则排成一行。

  输入

  输入文件的第一行包含一个整数N N (2≤N≤100) ,代表多米诺集合中牌的总数。接下来N行分别是每张骨牌上的两个1-6的数字。骨牌上的两个数字顺序是任意的。

  输出

  在输出文件的第一行为额外骨牌集合中所有骨牌上面最小的数字和(额外集合为空时则为0)。第二行输出额外骨牌集合中的骨牌数(空集时为0)。然后按输入文件的格式输出每一块这些骨牌。如果存在多种解,则只要输出其中任意一种即可。

  Sample input #1

  6
  6 1
  1 5
  5 5
  5 2
  2 4
  4 2

  Output for the sample input #1

  0
  0

  Sample input #2

  5
  1 5
  6 1
  5 5
  2 4
  2 4

  Output for the sample input #2

  6
  2
  1 2
  1 2

  

   

 
网站导航 | 关于曙光 | 联系我们 | 请提意见
Copyright © FuJian Sunshine Educational Info. Co.,Ltd.
福建曙光教育资讯有限公司 版权所有