CF1200E Compress Words

题目描述

Amugae 有一个由 $n$ 个单词组成的句子。他想把这个句子压缩成一个单词。Amugae 不喜欢重复,因此当他将两个单词合并成一个单词时,会移除第二个单词中与第一个单词后缀相同的最长前缀。例如,他将 "sample" 和 "please" 合并成 "samplease"。 Amugae 会从左到右依次合并他的句子(即,先合并前两个单词,然后将结果与第三个单词合并,依此类推)。请编写程序输出合并过程结束后得到的压缩单词。

输入格式

第一行包含一个整数 $n$($1 \le n \le 10^5$),表示 Amugae 句子中的单词数。 第二行包含 $n$ 个由单个空格分隔的单词。每个单词非空,仅由大小写英文字母和数字('A', 'B', ..., 'Z', 'a', 'b', ..., 'z', '0', '1', ..., '9')组成。所有单词的总长度不超过 $10^6$。

输出格式

输出一行,表示合并过程结束后得到的压缩单词。

说明/提示

由 ChatGPT 4.1 翻译