#P12387. 纯白之箭

纯白之箭

题目背景

搭建,纯白之箭!

题目描述

给定长度为 nn 的正整数序列 aa,构造一个长度为 n+1n+1 的字符串序列 SS,使得对于每个 1in1\le i\le n 都有 border(SiSi+1)=ai\operatorname{border}(S_iS_{i+1})=a_i

定义:

  • 对于两个字符串 S1,S2S_1,S_2S1S2S_1S_2 是它们的拼接。
  • 对于一个长度为 ll 的字符串 SSborder(S)\operatorname{border}(S) 是最大的正整数 k<lk<l 使得对于每个 1ik1\le i\le kSi=Slk+iS_i=S_{l-k+i},也即 SS 的最长 border 的长度。

由于某些原因,你构造的字符串序列需要满足:

  • 每个字符串都是非空的且只包含小写字母。
  • 所有字符串的长度之和不超过 2×1062\times10^6

保证有解。

输入格式

第一行一个正整数 nn

第二行 nn 个正整数描述正整数序列 aa

输出格式

n+1n+1 行,第 ii 行描述你构造的字符串序列中的第 iiSiS_i

3
3 2 1
abc
dabc
bda
b

提示

本题采用捆绑测试。

数据范围:

  • Subtask 1 (10pts):n=2n=2
  • Subtask 2 (20pts):n26n\le 26
  • Subtask 3 (30pts):序列 aa 单调不降。
  • Subtask 4 (40pts):无特殊限制。

对于全部数据,1n,ai1051\le n,a_i\le 10^5ai105\sum a_i\le 10^5