QOJ.ac

QOJ

Time Limit: 1.0 s Memory Limit: 256 MB Total points: 100

#13162. 未来一代

Statistics

Andi 要结婚了!他和他的伴侣计划生 $N$ 个孩子。为了避免将来出现麻烦,Andi 想提前决定所有孩子的名字。具体来说,他希望每个孩子的名字在字典序上都大于他/她的任何一位兄姐。当然,他的伴侣也同意这个想法。如果字符串 $B$ 是字符串 $A$ 的前缀,或者存在一个索引 $i$ 使得 $A_i > B_i$ 且对于所有 $j < i$ 都有 $A_j = B_j$,则称字符串 $A$ 在字典序上大于字符串 $B$。注意,专有名词可以短至一个字符,但不能为空字符串。

生活对 Andi 来说很美好,直到有一天他把这个结婚计划告诉了他未来的外祖母(即他伴侣的祖母)。在得知 Andi 计划与她的孙女共育 $N$ 个孩子后,她给了他 $N$ 个名字供使用。此外,第 $i$ 个名字只能用于第 $i$ 个孩子。

在与外祖母进行了一番长谈后,Andi 达成了一个协议:第 $i$ 个孩子的名字必须是外祖母给出的第 $i$ 个名字的子序列。如果字符串 $A$ 可以通过从 $B$ 中删除零个或多个字符且不改变剩余字符的顺序而得到,则称 $A$ 是 $B$ 的子序列。例如,ABC 是 DAEBCCB 的子序列,但 EFG 不是 FABEGC 的子序列。

尽管 Andi 不喜欢给出的名字列表,但他仍然想通过证明他既能满足外祖母的愿望,又能满足自己的愿望(即每个孩子的名字在字典序上都大于他/她的任何一位兄姐)来打动他的伴侣。然而,Andi 想知道,他们孩子名字的总长度最大可能是多少?

例如,设 $N = 3$,伴侣的祖母给出的名字是 (KARIM, PARBUDI, CHANDRA)。以下是满足 Andi 愿望的几组名字示例:

  • [AR, BI, CRA],总长度为 $2 + 2 + 3 = 7$。
  • [ARI, BUDI, CHANDRA],总长度为 $3 + 4 + 7 = 14$。
  • [ARIM, ARUDI, CHANDRA],总长度为 $4 + 5 + 7 = 16$。
  • [AIM, ARBUDI, CHANDRA],总长度为 $3 + 6 + 7 = 16$。
  • ...

在满足 Andi 愿望的所有名字组合中,最大总长度为 $16$。注意,在某些情况下可能无法获得有效的名字组合。在这种情况下,你应该输出 -1。例如,设 $N = 2$,伴侣的祖母给出的名字是 (ZORO, ANDI)。在这个例子中,第 $2$ 个名字的所有子序列在字典序上都小于第 $1$ 个名字的所有子序列,因此,无法获得有效的名字组合。

输入格式

输入的第一行包含一个整数 $N$ ($1 \le N \le 15$),表示孩子的数量。接下来的 $N$ 行,每行包含一个字符串 $S_i$ ($1 \le |S_i| \le 15$),表示 Andi 未来的外祖母给出的第 $i$ 个名字。$S_i$ 仅包含大写字母 ($S_{ij} \in \{A - Z\}$)。

输出格式

输出一行,包含一个整数,表示孩子名字的最大可能总长度,如果无法获得有效的名字组合,则输出 -1。

样例

样例输入 1

3
KARIM
PARBUDI
CHANDRA

样例输出 1

16

样例输入 2

2
ZORO
ANDI

样例输出 2

-1

样例输入 3

7
HAVE
FUN
IN
ICPC
JAKARTA
TWENTY
EIGHTEEN

样例输出 3

25

说明 3

一种可能的解是 [AVE, FUN, IN, IPC, JAKARTA, NTY, TEEN],总长度为 $3+3+2+3+7+3+4 = 25$。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.