QOJ.ac

QOJ

Límite de tiempo: 2 s Límite de memoria: 128 MB Puntuación total: 100

#1934. 彩色立方体

Estadísticas

有若干个彩色立方体。它们的大小相同,但颜色可能不同。这些立方体的每个面都有单一的颜色。立方体不同面上的颜色可能相同,也可能不同。

如果通过对其中一个立方体进行适当的旋转,可以使两个立方体看起来完全相同,则称这两个立方体为“颜色相同”。例如,图 2 中所示的两个立方体颜色相同。如果一组立方体中的每一对立方体都颜色相同,则称这组立方体为“颜色相同”。

一个立方体与其镜像并不一定颜色相同。例如,图 3 中所示的两个立方体颜色不相同。

无论立方体面上的颜色如何,你都可以通过重新粉刷某些面来使给定的一组立方体颜色相同。在图 4 中,重新粉刷四个面可以使这三个立方体颜色相同,而粉刷更少的面则无法达到目的。

你的任务是编写一个程序,计算为了使给定的一组立方体颜色相同,最少需要重新粉刷多少个面。

输入格式

输入由一系列数据集组成。每个数据集由一个头部和紧随其后的主体组成。头部是一行,包含一个正整数 $n$,主体由随后的 $n$ 行组成。你可以假设 $1 \le n \le 4$。主体中的每一行包含六个用空格分隔的颜色名称。颜色名称由一个或多个用连字符(-)连接的单词组成。单词由一个或多个小写字母组成。你可以假设颜色名称(包括连字符)最多为 24 个字符。

一个数据集对应一组彩色立方体。整数 $n$ 对应立方体的数量。主体的每一行对应一个立方体,并描述其各个面的颜色。行中的颜色名称按照图 5 所示的面编号顺序排列。一行

$color_1 \ color_2 \ color_3 \ color_4 \ color_5 \ color_6$

对应于图 6 所示的立方体颜色。

输入的结束由一行包含单个零的行表示。它既不是数据集的一部分,也不属于任何数据集。

图 2:颜色相同的立方体

图 3:颜色不相同的立方体

图 4:重新粉刷的示例

图 5:面编号

图 6:着色

输出格式

对于每个数据集,输出一行,包含为了使这组立方体颜色相同而需要重新粉刷的最少面数。

样例

样例输入 1

3
scarlet green blue yellow magenta cyan
blue pink green magenta cyan lemon
purple red blue yellow cyan green
2
red green blue yellow magenta cyan
cyan green blue yellow magenta red
2
red green gray gray magenta cyan
cyan green gray gray magenta red
2
red green blue yellow magenta cyan
magenta red blue yellow cyan green
3
red green blue yellow magenta cyan
cyan green blue yellow magenta red
magenta red blue yellow cyan green
3
blue green green green green blue
green blue blue green green green
green green green green green sea-green
3
red yellow red yellow red yellow
red red yellow yellow red yellow
red red red red red red
4
violet violet salmon salmon salmon salmon
violet salmon salmon salmon salmon violet
violet violet salmon salmon violet violet
violet violet violet violet salmon salmon
1
red green blue yellow magenta cyan
4
magenta pink red scarlet vermilion wine-red
aquamarine blue cyan indigo sky-blue turquoise-blue
blond cream chrome-yellow lemon olive yellow
chrome-green emerald-green green olive vilidian sky-blue
0

样例输出 1

4
2
0
0
2
3
4
4
0
16

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.