TopCoder

User's AC Ratio

40.0% (2/5)

Submission's AC Ratio

28.6% (2/7)

Tags

Description

一臺圖靈機是擁有一個讀針和無限長的一張充滿格子的紙當作記憶體的機器。今天,你發現圖靈機掉落了 $N$ 張紙片,其中第 $i$ 張上面恰好寫滿了一個由小寫英文字母所組成的字串 $s_i$!你知道,圖靈機在壞掉之前想要做的事是:

  • 請將所有的 $s_i$ 排列,使得排列之後將這些字串頭接著尾黏起來的字典序最小。

舉例來說,假設你有三個字串 $[ab, abc, b]$,那如果排成 $[ab, b, abc]$ 的話,就會比 $[abc, b, ab]$ 還要小,因為前者拼起來是 abbabc 而後者拼起來是 abcbab

注:如果 $A, B$ 分別為長度 $N, M$ 的字串,且 $N \le M$ 的話,則若:

  • 存在一個 $0 \le i < N$ 使得 $A[0, i - 1] = B[0, i - 1]$ 且 $A_i < B_i$
  • $A = B[0, N - 1]$ 且 $N < M$

則我們稱 $A$ 的字典序比 $B$ 小。

Input Format

輸入有 $N + 1$ 行。第一行為 $N$,接下來 $N$ 行中,每一行都會有一個由小寫英文字母組成的非空字串 $s_i$。

保證 $1 \leq N, \sum |s_i| \leq 10^ 5$。

Output Format

請輸出一個字串,代表接起來之後具有最小字典序的字串。

Sample Input 1

3
ab
b
abc

Sample Output 1

ababcb

Sample Input 2

4
gawr
gura
shaaaaaark
atlantis

Sample Output 2

atlantisgawrgurashaaaaaark

Hints

Problem Source

Subtasks

No. Testdata Range Constraints Score
1 0~1 範例測資 0
2 0~24 無額外限制 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