编程题:模拟
米尔科已经解决了日报上所有的纵横字谜,他被$$ACTA$$吓得不敢从网上下载新的纵横字谜。现在他让弗兰用一个编程问题来挑战他。弗兰急切地回应了一个全新的任务,并且非常友好,没有将任务锁定在版权保护下,所以你也可以尝试!
四个长度相等的单词可以放在一个正方形中,这样两个单词标记水平边缘,而另两个标记垂直边缘。水平单词从左到右阅读,垂直单词从上到下阅读。角字母由相邻的两条边共享。下图显示了由单词“$$HLAD$$”、“$$NIVA$$”、“$$HSIN$$”、“$$DEDA$$”创建的一个可能的正方形。

你的任务是,给定一个等长单词列表,计算这些单词子集中可以组合在一起的不同方块的数量。你不能在同一个方格里重复一个单词。如果两个正方形在至少一个字符上不同,则它们是不同的。
### 输入格式:
输入的第一行包含正整数$$N(4≤N≤100000)$$,表示列表中的字数。
接下来的$$N$$行中的每一行都包含一个仅由大写英文字母组成的单词。
每个单词最多包含$$10$$个字符。所有的单词都是不同的,长度相同。
### 输出格式:
第一行也是唯一一行输出必须包含所需数量的不同方块。
注意:测试数据将确保解决方案适合$$64$$位整数数据类型($$Pascal$$中为$$int64$$,$$C/C++$$中为$$long-long$$)。
### 输入样例1:
in
4
NIVA
HLAD
HSIN
DEDA
### 输出样例1:
out
2
### 输入样例2:
in
6
BAKA
BARA
BALC
CALC
ARHC
BLIC
### 输出样例2:
out
8
答案:若无答案欢迎评论
四个长度相等的单词可以放在一个正方形中,这样两个单词标记水平边缘,而另两个标记垂直边缘。水平单词从左到右阅读,垂直单词从上到下阅读。角字母由相邻的两条边共享。下图显示了由单词“$$HLAD$$”、“$$NIVA$$”、“$$HSIN$$”、“$$DEDA$$”创建的一个可能的正方形。

你的任务是,给定一个等长单词列表,计算这些单词子集中可以组合在一起的不同方块的数量。你不能在同一个方格里重复一个单词。如果两个正方形在至少一个字符上不同,则它们是不同的。
### 输入格式:
输入的第一行包含正整数$$N(4≤N≤100000)$$,表示列表中的字数。
接下来的$$N$$行中的每一行都包含一个仅由大写英文字母组成的单词。
每个单词最多包含$$10$$个字符。所有的单词都是不同的,长度相同。
### 输出格式:
第一行也是唯一一行输出必须包含所需数量的不同方块。
注意:测试数据将确保解决方案适合$$64$$位整数数据类型($$Pascal$$中为$$int64$$,$$C/C++$$中为$$long-long$$)。
### 输入样例1:
in
4
NIVA
HLAD
HSIN
DEDA
### 输出样例1:
out
2
### 输入样例2:
in
6
BAKA
BARA
BALC
CALC
ARHC
BLIC
### 输出样例2:
out
8
答案:若无答案欢迎评论