小明最近迷上一個遊戲叫字串接龍,遊戲會給你許多字串,只要將字串按照順序接起來,就可以獲得遊戲加分,然而遊戲有時間限制,為了節省時間,小明會從當前字串結尾找到一段與下一個字串開頭的最長共同子字串,利用複製貼上的方式完成接龍。舉例來說,假設當前字串為 aabbc
且下一個字串是 bbcab
,那麼 bbc
的部分為前者結尾與後者開頭的最長共同子字串,故小明只需要打 aabbcab
這幾個字,因為第二個 bbc
可以藉由複製貼上完成。
為了拿到新高分,小明希望你能幫他找出最少必須打哪些字。
輸入第一行為一個正整數 $N\ (1 \leq N \leq 5000)$,代表字串的數量。
接下來 $N$ 行每行都包含一個只由小寫英文字母所組成的字串 $s_i \ (1 \leq \sum |s_i| \leq 5000)$。
輸出一行,代表小明最少需要打那些字。
No. | Testdata Range | Constraints | Score |
---|---|---|---|
1 | 0~1 | 範例測資 | 0 |
2 | 0~29 | 無額外限制 | 100 |