#ATarc062c. [ARC062E] AtCoDeerくんと立方体づくり

[ARC062E] AtCoDeerくんと立方体づくり

题目描述

小鹿 AtCoDeer 君有 NN 块正方形瓷砖。每块正方形的一面写有 11NN 的数字,并且正方形的每个顶点都涂有颜色。颜色用 00999999 的整数表示,编号为 ii 的正方形,其顶点的颜色按照数字面朝上的方向,从左上、右上、右下、左下的顺序,分别为 Ci,0,Ci,1,Ci,2,Ci,3C_{i,0}, C_{i,1}, C_{i,2}, C_{i,3}(参见图 11)。


11:瓷砖的颜色与输入的对应关系

AtCoDeer 君想用这 NN 块瓷砖中的 66 块,组合成一个满足以下条件的立方体:

  • 数字面朝外。
  • 对于立方体的每一个顶点,聚集在该顶点的 33 个正方形的顶点颜色必须完全相同。

请你帮 AtCoDeer 君计算,满足条件的立方体有多少种不同的组合方式。需要注意的是,虽然瓷砖的颜色可能相同,但只要所用瓷砖编号不同,或者瓷砖的朝向(每块瓷砖可以通过 9090^\circ 旋转有 44 种朝向)不同,就视为不同的立方体组合。但如果通过三维空间旋转后,所用瓷砖及其朝向完全一致,则视为同一种立方体。


22:瓷砖的四种朝向

输入格式

输入通过标准输入给出,格式如下:

NN C1,0C_{1,0} C1,1C_{1,1} C1,2C_{1,2} C1,3C_{1,3} C2,0C_{2,0} C2,1C_{2,1} C2,2C_{2,2} C2,3C_{2,3} \cdots CN,0C_{N,0} CN,1C_{N,1} CN,2C_{N,2} CN,3C_{N,3}

输出格式

输出 AtCoDeer 君能够制作的满足条件的立方体的组合数。

样例 1

输入

6
0 1 2 3
0 4 6 1
1 6 7 2
2 7 5 3
6 4 5 7
4 0 3 5

输出

1

样例 2

输入

8
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1

输出

144

样例 3

输入

6
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0

输出

122880

说明/提示

数据范围

  • 6N4006 \leq N \leq 400
  • $0 \leq C\_{i,j} \leq 999\ (1 \leq i \leq N,\ 0 \leq j \leq 3)$

样例解释 1

可以制作如下图所示的立方体。

由 ChatGPT 4.1 翻译