#550. 翻转

翻转

问题描述

小蓝制作了 nn 个工件,每个工件用一个由小写英文字母组成的、长度为 22 的字符串表示,第 ii 个工件表示为 sis_i

小蓝想把 nn 个工件拼接到一起,方便转移到另一个地方完成下一道工序,而拼接后的工件用字符串 S=s1+s2++snS = s_1 + s_2 + \dots + s_n 表示,其中 ++ 表示一种奇特的拼接方式:

对于 c=a+bc = a + b 来说:

  • 如果 aa 的第二个字符和 bb 的第一个字符相同,则拼接后的结果 cc 长度为 33 而不是 44,中间相同的字符可以省略一个。 例如:xy+yz=xyzxy + yz = xyz
  • 否则按正常拼接:xy+zy=xyzyxy + zy = xyzy

小蓝为了让拼接后的字符串 SS 的长度尽量小,可以将若干个工件进行左右翻转之后再进行拼接。请问拼接后的字符串 SS 的最小长度是多少?

请注意:所有工件必须按出现顺序依次拼接,可以翻转任意工件。

输入格式

输入的第一行包含一个正整数 nn

接下来 nn 行,每行包含一个长度为 22 的字符串,依次表示 s1,s2,,sns_1, s_2, \dots, s_n

输出格式

输出一行,包含一个整数,表示答案。

样例输入

3
ab
cb
zz

样例输出

5

说明

s2s_2 翻转后,拼接结果为 abczzabczz,长度为 55

数据范围

对于 30%30\% 的数据,n20n \le 20

对于 100%100\% 的数据,1n1051 \le n \le 10^5