P17377 [ECNA 2023] Split Decisions
题目描述
Split Decisions 是一种填字游戏。与标准填字游戏不同,其中每个横向或纵向答案都是一对单词,而不是单个单词。一对单词除恰好两个相邻位置外,其余位置的字母都完全相同;谜题会给出这两个位置上两组不同的字母,它们共同构成这对单词的线索。
图 1 左半部分给出了字母对 `IN` 和 `CR`,可以用单词 `SINEW` 与 `SCREW` 解出这条线索。图的右半部分则展示了一个典型的 Split Decisions 谜题。
我们本可以要求你解答一个给定的 Split Decisions 谜题,不过这次决定让你完成一项略有不同的任务。给定一份单词表,你需要找出其中可以用于 Split Decisions 谜题的单词对。具体而言,每一对单词必须满足:
- 它们在**恰好两个相邻位置**上的字母不同;
- 对于由这两个位置上的两组字母构成的线索,它们是单词表中唯一可行的单词对,即表中不存在另一对单词也能解出同一条线索。
例如,如果单词表包含 `CELL`、`GULL`、`GUSH`、`HALL` 和 `HASH`,则可以构造两条线索:`[CE/GU]_ _` 对应答案对 `CELL/GULL`,`[CE/HA]_ _` 对应答案对 `CELL/HALL`。
注意,线索 `[GU/HA]_ _` 有两组可能的答案:`GULL/HALL` 和 `GUSH/HASH`,因此不应计入。
:::align{center}

:::
输入格式
第一行包含一个正整数 $n$,表示单词表中的单词数量,其中 $1\le n\le 1500$。
接下来 $n$ 行,每行包含一个单词。每个单词只由大写英文字母组成,长度不小于 $3$ 且不大于 $20$。
输出格式
输出输入中存在合法 Split Decisions 线索的不同单词对数量。