#aBC268Fid356. [ABC268F] Best Concatenation

[ABC268F] Best Concatenation

AT_abc268_f [ABC268F] Best Concatenation

题目描述

给定 NN 个仅由数字 1199 以及 X 组成的字符串 S1,S2,,SNS_1, S_2, \ldots, S_N

你可以任选一个 11NN 的排列 P=(P1,P2,,PN)P = (P_1, P_2, \ldots, P_N),并将字符串 SP1,SP2,,SPNS_{P_1}, S_{P_2}, \ldots, S_{P_N} 按顺序连接,得到字符串 T=SP1+SP2++SPNT = S_{P_1} + S_{P_2} + \cdots + S_{P_N}。这里的 ++ 表示字符串的连接操作。

然后,对字符串 T=T1T2TTT = T_1T_2\ldots T_{|T|} 计算其“得分”(T|T| 表示 TT 的长度)。 TT 的得分从 00 开始,按照以下 99 个步骤计算:

  • 对于所有满足 1i<jT1 \leq i < j \leq |T|Ti=T_i = XTj=T_j = 1 的整数对 (i,j)(i, j),每对使得得分加 11
  • 对于所有满足 1i<jT1 \leq i < j \leq |T|Ti=T_i = XTj=T_j = 2 的整数对 (i,j)(i, j),每对使得得分加 22
  • 对于所有满足 1i<jT1 \leq i < j \leq |T|Ti=T_i = XTj=T_j = 3 的整数对 (i,j)(i, j),每对使得得分加 33
  • \cdots
  • 对于所有满足 1i<jT1 \leq i < j \leq |T|Ti=T_i = XTj=T_j = 9 的整数对 (i,j)(i, j),每对使得得分加 99

请输出在任意选择排列 PP 时,TT 的得分可能取得的最大值。

输入格式

输入按以下格式从标准输入读入。

NN
S1S_1
S2S_2
\vdots
SNS_N

输出格式

输出答案。

输入输出样例 #1

输入 #1

3
1X3
59
XXX

输出 #1

71

输入输出样例 #2

输入 #2

10
X63X395XX
X2XX3X22X
13
3716XXX6
45X
X6XX
9238
281X92
1XX4X4XX6
54X9X711X1

输出 #2

3010

说明/提示

数据范围

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • NN 为整数
  • SiS_i 是仅由数字 1199 以及 X 组成的字符串,长度至少为 11
  • S1,S2,,SNS_1, S_2, \ldots, S_N 的总长度不超过 2×1052 \times 10^5

样例解释 1

P=(3,1,2)P = (3, 1, 2) 时,T=S3+S1+S2=T = S_3 + S_1 + S_2 = XXX1X359。此时,TT 的得分如下计算:

  • 满足 1i<jT1 \leq i < j \leq |T|Ti=T_i = XTj=T_j = 1 的整数对 (i,j)(i, j)33 个;
  • 满足 1i<jT1 \leq i < j \leq |T|Ti=T_i = XTj=T_j = 3 的整数对 (i,j)(i, j)44 个;
  • 满足 1i<jT1 \leq i < j \leq |T|Ti=T_i = XTj=T_j = 5 的整数对 (i,j)(i, j)44 个;
  • 满足 1i<jT1 \leq i < j \leq |T|Ti=T_i = XTj=T_j = 9 的整数对 (i,j)(i, j)44 个。

因此,TT 的得分为 $1 \times 3 + 3 \times 4 + 5 \times 4 + 9 \times 4 = 71$,这也是可能取得的最大值。

由 ChatGPT 4.1 翻译