#P14238. [CCPC 2024 Shandong I] 三角形

[CCPC 2024 Shandong I] 三角形

题目描述

给定 nn 个由小写英文字母构成的字符串 S1,S2,,SnS_1, S_2, \cdots, S_n,称三个字符串 SaS_aSbS_bScS_c 构成了一个三角形,若它们满足以下所有限制:

  • Sa+Sb>ScS_a + S_b > S_cSb+Sa>ScS_b + S_a > S_c
  • Sa+Sc>SbS_a + S_c > S_bSc+Sa>SbS_c + S_a > S_b
  • Sb+Sc>SaS_b + S_c > S_aSc+Sb>SaS_c + S_b > S_a

这里的 ++ 表示字符串连接操作。字符串通过字典序比较大小。例如,ba\texttt{ba}cb\texttt{cb}cbaa\texttt{cbaa} 构成了一个三角形,因为:

  • cb\texttt{cb} ++ ba\texttt{ba} == cbba\texttt{cbba} >> cbaa\texttt{cbaa}.
  • cbaa\texttt{cbaa} ++ ba\texttt{ba} == cbaaba\texttt{cbaaba} >> cb\texttt{cb}.
  • cb\texttt{cb} ++ cbaa\texttt{cbaa} == cbcbaa\texttt{cbcbaa} >> ba\texttt{ba}.

计算整数三元组 (a,b,c)(a, b, c) 的数量,满足 1a<b<cn1 \le a < b < c \le nSaS_aSbS_bScS_c 构成了一个三角形。

输入格式

有多组测试数据。第一行输入一个整数 TT 表示测试数据组数。对于每组测试数据:

第一行输入一个整数 nn1n3×1051 \le n \le 3 \times 10^5)表示字符串的数量。

对于接下来的 nn 行,第 ii 行输入一个由小写字母构成的字符串 SiS_i1Si3×1051 \le |S_i| \le 3 \times 10^5)。

保证单组数据所有字符串的总长度不超过 3×1053 \times 10^5,所有数据所有字符串的总长度不超过 10610^6

输出格式

每组数据输出一行一个整数,表示合法的三元组数量。

3
6
cbaa
cb
cb
cbaa
ba
ba
3
sdcpc
sd
cpc
1
ccpc
16
0
0