#D0650. [DAY27]反向Z函数

[DAY27]反向Z函数

题目描述

33DAI 拿到了一个长度为 nn 的数组 z1∼znz_1\sim z_n。

请你构造一个长度为 nn 的仅包含小写英文字母的字符串 s1∼sns_1\sim s_n,要求对于所有 1∼n1\sim n 范围内的 ii 都有:

  • si∼si+zi−1s_i\sim s_{i+z_i-1} 与 s1∼szis_1\sim s_{z_i} 相同。
  • si+zis_{i+z_i} 与 szi+1s_{z_i+1} 不同。

题目保证有解。

输入格式

第一行为一个数 nn。

第二行为 nn 个空格隔开的正整数 z1∼znz_1\sim z_n。

输出格式

输出一个满足要求的长度为 nn 的仅包含小写英文字母的字符串。显然可能有多种解,请输出字典序最小的一个。

6
6 0 2 0 0 1
ababba
4
4 0 1 0
abac

数据规模与约定

对于 100%100\% 的数据,1≤n≤1051 \le n \le 10^5,ziz_i 保证存在合法解。

  • 子任务 1(30 分):保证仅需要 ab 两个字符即可构造。
  • 子任务 2(30 分):保证 n≤26n\le 26。
  • 子任务 3(40 分):没有特殊限制。

20251123修复:之前的 gen.py,i-l 写成了 i-1,已修复。