#P2187. 项链(necklace)

项链(necklace)

【问题描述】

Henryy 岛是个度假胜地,每年吸引着数以万计的游客到来。岛上有着有多精品店,不过大多数精品店出售的是一种可以 DIY 的项链。这种项链是一些奇怪的海洋生物的外壳,把他们串起来好看又小巧。但是串这些外壳也是有技巧的,要做到好看又小巧真的不容易。

假设每个外壳有好几个可以用来连接其他外壳的连接点,每个连接点我们用大写英文字母 A-Z 表示(不会有同一种连接点多次出现在一个外壳上)。两个外壳可以连接,当且仅当他们有公共的连接点。而且每个连接点最多与另外一个连 接点相连接。如果所有被串起来的外壳,没有多余的连接点(也就是说不可能再串一个外壳),这样串起来的所有外壳,我们叫做“外壳串”。而项链将由这些的“外壳串”再次串起来。项链的串法就没有这么复杂了,它直接用绳子串起来就可以拉。

现在的问题是,在众多的外壳中,应该如何选择才可以串出一个最为庞大的项链(外壳要最多)。

【输入格式】

第一行是一个整数 N(0<=N<=26),表示有 N 个外壳。接下来有 N 行,每行是一个以 A-Z 字母组成的字串,表示一个外壳。

【输出格式】

输出最多可以由多少个外壳串出一串项链。

【样例输入】

6
ABD
AB
BA
ABE
AC
BCD

【样例输出】

5

【样例说明】

使用 ABD、AB、BA、AC 和 BCD,其中 ABD 和 BCD 串剩 A 和 C,分别于 AB 和 AC 连接后剩下的与 BA 连接即可