#P12387. 纯白之箭

纯白之箭

背景

搭建,纯白之箭!

题目描述

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

定义:

  • 对于两个字符串 S1,S2S_1,S_2,S1S2S_1S_2 是它们的拼接。
  • 对于一个长度为 ll 的字符串 SS,border⁡(S)\operatorname{border}(S) 是最大的正整数 k<lk<l 使得对于每个 1≤i≤k1\le i\le k 有 Si=Sl−k+iS_i=S_{l-k+i},也即 SS 的最长 border 的长度。

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

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

保证有解。

输入格式

第一行一个正整数 nn。

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

输出格式

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

3
3 2 1
abc
dabc
bda
b

提示

本题采用捆绑测试。

数据范围:

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

对于全部数据,1≤n,ai≤1051\le n,a_i\le 10^5,∑ai≤105\sum a_i\le 10^5。