B4351 [信息与未来 2025] 成语接龙
题目描述
小朋友们都很喜欢成语接龙,但如果遇到可以无限接龙的 “防不胜防”、“忍无可忍” 和 “为所欲为”,游戏就会陷入僵局。Dr. X 发明了改进版的成语接龙:把 $16$ 个汉字写在 $4$ 行 $4$ 列的方阵中,要求:
- 第一行(从左往右读)是一个四字成语。
- 最后一列(从上往下读)是一个四字成语。
- 最后一行(从右往左读)是一个四字成语。
- 第一列(从下往上读)是一个四字成语。
- 对角线(从左上到右下读)是一个四字成语。
- 对角线(从右上到左下读)是一个四字成语。
- 上面 $6$ 个成语各不相同。
下面是一个满足条件的成语接龙:

Dr. X 找到了一本成语词典,你能帮 Dr. X 编程找到词典中所有满足条件的成语接龙方阵吗?
输入格式
输入第一行是整数 $n$,表示成语词典中成语的数量。
接下来 $n$ 行,每行四个空格分开的、长度不超过 $8$ 的字符串(由小写字母和数字组成)。相同的字符串代表同一个汉字。
输出格式
输出一个整数,代表不同成语接龙方阵的数量。对于两个 $4 × 4$ 的方阵,只要存在任意位置的汉字不同,就认为是不同的方阵。
说明/提示
对于 $40\%$ 的数据,$n ≤ 100$。
对于 $100\%$ 的数据,$10 ≤ n ≤ 10^4$,且输入中的所有成语均来自真实的成语词典。成语词典中没有重复的成语。