#928. 竖写

竖写

题目描述

给定一段横向排版的文本,请将它转换为纵向排版,不足的位置用 * 填充。

具体来说,给定 NN 个由小写英文字母组成的字符串 S1,S2,,SNS_1, S_2, \dots, S_N

MM 为这些字符串中的最大长度(即 max(Si)\max(|S_i|))。

请输出 MM 个字符串 T1,T2,,TMT_1, T_2, \dots, T_M,使其满足以下条件:

  • 每个 TiT_i 仅由小写英文字母和 * 组成。
  • 每个 TiT_i 不能* 结尾。
  • 对于每个 1iN1 \le i \le N,满足:
    • 对于每个 1jSi1 \le j \le |S_i|TjT_j 的第 (Ni+1)(N-i+1) 个字符一定存在,且将 T1,T2,,TSiT_1, T_2, \dots, T_{|S_i|} 的第 (Ni+1)(N-i+1) 个字符按顺序拼接起来,恰好等于 SiS_i
    • 对于每个 Si+1jM|S_i| + 1 \le j \le MTjT_j 的第 (Ni+1)(N-i+1) 个字符要么不存在,要么是 *

其中 Si|S_i| 表示字符串 SiS_i 的长度。

输入格式

第一行包含一个正整数 NN

接下来 NN 行,每行包含一个字符串 SiS_i

输出格式

输出 MM 行,第 ii 行输出一个字符串 TiT_i

样例输入 1

3
abc
de
fghi

样例输出 1

fda
geb
h*c
i

样例输入 2

3
atcoder
beginner
contest

样例输出 2

cba
oet
ngc
tio
end
sne
ter
*r

说明

样例解释

在第一个样例中,

T3T_3 的第 22 个字符设为 *,可以使 T3T_3 的第 33 个字符 c 对齐到正确的位置。

另一方面,对于第 44 行,如果我们将 T4T_4 的第 22 个和第 33 个字符都填上 *,会导致 T4T_4* 结尾(变成 i**),这违背了题目中“字符串不能以 * 结尾”的条件,因此应当省略后面的 *,直接输出 i

数据范围

  • 对于所有测试点,保证 1N1001 \le N \le 100
  • 保证每个 SiS_i 均由小写英文字母组成,且长度满足 1Si1001 \le |S_i| \le 100
  • 保证所有的输入数值均为整数。