#416. 卡片接龙

卡片接龙

题目描述

强哥在学校组织的“传承接力”知识比赛中担任队长,比赛规则如下:

nn 张知识卡片,每张卡片上写着一个词语(由小写字母组成,长度不超过 20)。比赛要求参赛者选择若干张卡片,并按照以下规则进行顺序拼接:

  • 只能按卡片原有顺序选择,即选择时卡片编号 i<ji < j 的卡片 SjS_j 必须排在卡片 SiS_i 之后;
  • 只有当一张卡片的末尾字母与另一张卡片的开头字母相同时,后一张卡片才能接在前一张卡片之后。

拼接完成后,如果最终形成的整个字符串的首字母与尾字母相同,则该拼接成果有效。

强哥需要从所有卡片中选出若干张(可以不连续选择),使得按上述规则拼接后得到的字符串长度尽可能长,并且首尾字母相同。请你帮助强哥计算这个最大长度。

输入格式

第一行一个整数 nn,表示卡片的数量。

接下来 nn 行,每行一个由小写字母组成的字符串,表示卡片上的词语。

数据范围
1n1041 \le n \le 10^4
每个字符串长度不超过 20

输出格式

输出一个整数,表示按规则拼接并满足首尾相同要求的最长字符串的长度。

样例

5
abc
ccde
cde
cccccccccz
ea
9

样例解释:
选择卡片 1 (abc)、卡片 2 (ccde)、卡片 5 (ea),拼接得到 "abcccdeea",首尾字母均为 a,长度为 9。

1
abcdexyz
0

测试数据 3:

1
q
1