#ABC349G. 回文构造

回文构造

回文构造

题目描述

长度为 MM 的正整数序列 T=(T1,T2,,TM)T=(T_1,T_2,\dots,T_M) 是回文,当且仅当对每个 i=1,2,,Mi=1,2,\dots,M 都有 Ti=TMi+1T_i=T_{M-i+1}

给定长度为 NN 的非负整数序列 A=(A1,A2,,AN)A = (A_1,A_2,\dots,A_N)。判断是否存在满足以下条件的长度为 NN 的正整数序列 S=(S1,S2,,SN)S=(S_1,S_2,\dots,S_N),如果存在,求字典序最小的这样的序列。

对每个 i=1,2,,Ni=1,2,\dots,N,以下两条同时成立:

  • 序列 (SiAi,SiAi+1,,Si+Ai)(S_{i-A_i},S_{i-A_i+1},\dots,S_{i+A_i}) 是回文。
  • 如果 2iAi2 \le i-A_ii+AiN1i+A_i \le N-1,则序列 (SiAi1,SiAi,,Si+Ai+1)(S_{i-A_i-1},S_{i-A_i},\dots,S_{i+A_i+1}) 不是回文。

输入格式

输入按以下格式从标准输入给出:

NN
A1A_1 A2A_2 \dots ANA_N

输出格式

如果不存在满足条件的序列 SS,输出 No

如果存在满足条件的序列 SS,设 SS' 为字典序最小的这样的序列,按以下格式输出:

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)S = (1,1,2,1,1,1,2) 满足条件:

  • i=1i=1:(S1)=(1)(S_1)=(1) 是回文。
  • i=2i=2:(S2)=(1)(S_2)=(1) 是回文,但 (S1,S2,S3)=(1,1,2)(S_1,S_2,S_3)=(1,1,2) 不是。
  • i=3i=3:(S1,S2,,S5)=(1,1,2,1,1)(S_1,S_2,\dots,S_5)=(1,1,2,1,1) 是回文。
  • i=4i=4:(S4)=(1)(S_4)=(1) 是回文,但 (S3,S4,S5)=(2,1,1)(S_3,S_4,S_5)=(2,1,1) 不是。
  • i=5i=5:(S3,S4,,S7)=(2,1,1,1,2)(S_3,S_4,\dots,S_7)=(2,1,1,1,2) 是回文。
  • i=6i=6:(S6)=(1)(S_6)=(1) 是回文,但 (S5,S6,S7)=(1,1,2)(S_5,S_6,S_7)=(1,1,2) 不是。
  • i=7i=7:(S7)=(2)(S_7)=(2) 是回文。

还存在其他满足条件的序列,如 S=(2,2,1,2,2,2,1)S=(2,2,1,2,2,2,1),但应输出字典序最小的 (1,1,2,1,1,1,2)(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

数据范围

  • 1N2×1051 \le N \le 2 \times 10^5
  • 0Aimin{i1,Ni}0 \le A_i \le \min\{i-1,N-i\}
  • 输入均为整数。
难度 省选/NOI-
通过率
尝试 0
已通过 0
ID
3269
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签