AT_abc349_g [ABC349G] Palindrome Construction
题目描述
我们称长度为 $M$ 的正整数序列 $T=(T_1,T_2,\dots,T_M)$ 是**回文**的,当且仅当对于每个 $i=1,2,\dots,M$,都有 $T_i=T_{M-i+1}$。
给定一个长度为 $N$ 的非负整数序列 $A=(A_1,A_2,\dots,A_N)$。请判断是否存在一个满足下述条件的长度为 $N$ 的正整数序列 $S=(S_1,S_2,\dots,S_N)$,如果存在,请输出所有满足条件的序列中字典序最小的一个。
- 对于每个 $i=1,2,\dots,N$,都满足以下两点:
- 序列 $(S_{i-A_i},S_{i-A_i+1},\dots,S_{i+A_i})$ 是回文的。
- 如果 $2\leq i-A_i$ 且 $i+A_i\leq N-1$,则序列 $(S_{i-A_i-1},S_{i-A_i},\dots,S_{i+A_i+1})$ 不是回文的。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $A_1$ $A_2$ $\dots$ $A_N$
输出格式
如果不存在满足条件的 $S$,输出 `No`。
如果存在,输出 `Yes`,以及字典序最小的满足条件的 $S'=(S'_1,S'_2,\dots,S'_N)$,格式如下:
> Yes $S'_1$ $S'_2$ $\dots$ $S'_N$
说明/提示
## 限制条件
- $1\leq N\leq 2\times 10^5$
- $0\leq A_i\leq \min\{i-1,N-i\}$
- 输入均为整数
## 样例解释 1
可以确认 $S=(1,1,2,1,1,1,2)$ 满足条件。
- $i=1$:$(A_1)=(1)$ 是回文。
- $i=2$:$(A_2)=(1)$ 是回文,且 $(A_1,A_2,A_3)=(1,1,2)$ 不是回文。
- $i=3$:$(A_1,A_2,\dots,A_5)=(1,1,2,1,1)$ 是回文。
- $i=4$:$(A_4)=(1)$ 是回文,且 $(A_3,A_4,A_5)=(2,1,1)$ 不是回文。
- $i=5$:$(A_3,A_4,\dots,A_7)=(2,1,1,1,2)$ 是回文。
- $i=6$:$(A_6)=(1)$ 是回文,且 $(A_5,A_6,A_7)=(1,1,2)$ 不是回文。
- $i=7$:$(A_7)=(2)$ 是回文。
除此之外,$S=(2,2,1,2,2,2,1)$ 等也满足条件,但字典序最小的是 $(1,1,2,1,1,1,2)$。
由 ChatGPT 4.1 翻译