TopCoder

User's AC Ratio

100.0% (1/1)

Submission's AC Ratio

100.0% (1/1)

Tags

Description

小明最近迷上一個遊戲叫字串接龍,遊戲會給你許多字串,只要將字串按照順序接起來,就可以獲得遊戲加分,然而遊戲有時間限制,為了節省時間,小明會從當前字串結尾找到一段與下一個字串開頭的最長共同子字串,利用複製貼上的方式完成接龍。舉例來說,假設當前字串為 aabbc 且下一個字串是 bbcab,那麼 bbc 的部分為前者結尾與後者開頭的最長共同子字串,故小明只需要打 aabbcab 這幾個字,因為第二個 bbc 可以藉由複製貼上完成。

為了拿到新高分,小明希望你能幫他找出最少必須打哪些字。

Input Format

輸入第一行為一個正整數 $N\ (1 \leq N \leq 5000)$,代表字串的數量。
接下來 $N$ 行每行都包含一個只由小寫英文字母所組成的字串 $s_i \ (1 \leq \sum |s_i| \leq 5000)$。

Output Format

輸出一行,代表小明最少需要打那些字。

Sample Input 1

3
ab
bba
bbac

Sample Output 1

abbac

Sample Input 2

2
abba
abbac

Sample Output 2

abbac

Hints

Problem Source

Subtasks

No. Testdata Range Constraints Score
1 0~1 範例測資 0
2 0~29 無額外限制 100

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 524288 65536 1 2
1 1000 524288 65536 1 2
2 1000 524288 65536 2
3 1000 524288 65536 2
4 1000 524288 65536 2
5 1000 524288 65536 2
6 1000 524288 65536 2
7 1000 524288 65536 2
8 1000 524288 65536 2
9 1000 524288 65536 2
10 1000 524288 65536 2
11 1000 524288 65536 2
12 1000 524288 65536 2
13 1000 524288 65536 2
14 1000 524288 65536 2
15 1000 524288 65536 2
16 1000 524288 65536 2
17 1000 524288 65536 2
18 1000 524288 65536 2
19 1000 524288 65536 2
20 1000 524288 65536 2
21 1000 524288 65536 2
22 1000 524288 65536 2
23 1000 524288 65536 2
24 1000 524288 65536 2
25 1000 524288 65536 2
26 1000 524288 65536 2
27 1000 524288 65536 2
28 1000 524288 65536 2
29 1000 524288 65536 2