回文构造
题目描述
长度为 M 的正整数序列 T=(T1,T2,…,TM) 是回文,当且仅当对每个 i=1,2,…,M 都有 Ti=TM−i+1。
给定长度为 N 的非负整数序列 A=(A1,A2,…,AN)。判断是否存在满足以下条件的长度为 N 的正整数序列 S=(S1,S2,…,SN),如果存在,求字典序最小的这样的序列。
对每个 i=1,2,…,N,以下两条同时成立:
- 序列 (Si−Ai,Si−Ai+1,…,Si+Ai) 是回文。
- 如果 2≤i−Ai 且 i+Ai≤N−1,则序列 (Si−Ai−1,Si−Ai,…,Si+Ai+1) 不是回文。
输入格式
输入按以下格式从标准输入给出:
N
A1 A2 … AN
输出格式
如果不存在满足条件的序列 S,输出 No。
如果存在满足条件的序列 S,设 S′ 为字典序最小的这样的序列,按以下格式输出:
Yes
S'_1 S'_2 … S'_N
样例
7
0 0 2 0 2 0 0
Yes
1 1 2 1 1 1 2
S=(1,1,2,1,1,1,2) 满足条件:
- i=1:(S1)=(1) 是回文。
- i=2:(S2)=(1) 是回文,但 (S1,S2,S3)=(1,1,2) 不是。
- i=3:(S1,S2,…,S5)=(1,1,2,1,1) 是回文。
- i=4:(S4)=(1) 是回文,但 (S3,S4,S5)=(2,1,1) 不是。
- i=5:(S3,S4,…,S7)=(2,1,1,1,2) 是回文。
- i=6:(S6)=(1) 是回文,但 (S5,S6,S7)=(1,1,2) 不是。
- i=7:(S7)=(2) 是回文。
还存在其他满足条件的序列,如 S=(2,2,1,2,2,2,1),但应输出字典序最小的 (1,1,2,1,1,1,2)。
7
0 1 2 3 2 1 0
Yes
1 1 1 1 1 1 1
7
0 1 2 0 2 1 0
No
数据范围
- 1≤N≤2×105
- 0≤Ai≤min{i−1,N−i}
- 输入均为整数。