AT_abc349_g [ABC349G] Palindrome Construction
题目描述
我们称长度为 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。
如果存在,输出 Yes,以及字典序最小的满足条件的 S′=(S1′,S2′,…,SN′),格式如下:
Yes S1′ S2′ … SN′
输入输出样例 #1
输入 #1
7
0 0 2 0 2 0 0
输出 #1
Yes
1 1 2 1 1 1 2
输入输出样例 #2
输入 #2
7
0 1 2 3 2 1 0
输出 #2
Yes
1 1 1 1 1 1 1
输入输出样例 #3
输入 #3
7
0 1 2 0 2 1 0
输出 #3
No
说明/提示
限制条件
- 1≤N≤2×105
- 0≤Ai≤min{i−1,N−i}
- 输入均为整数
样例解释 1
可以确认 S=(1,1,2,1,1,1,2) 满足条件。
- i=1:(A1)=(1) 是回文。
- i=2:(A2)=(1) 是回文,且 (A1,A2,A3)=(1,1,2) 不是回文。
- i=3:(A1,A2,…,A5)=(1,1,2,1,1) 是回文。
- i=4:(A4)=(1) 是回文,且 (A3,A4,A5)=(2,1,1) 不是回文。
- i=5:(A3,A4,…,A7)=(2,1,1,1,2) 是回文。
- i=6:(A6)=(1) 是回文,且 (A5,A6,A7)=(1,1,2) 不是回文。
- i=7:(A7)=(2) 是回文。
除此之外,S=(2,2,1,2,2,2,1) 等也满足条件,但字典序最小的是 (1,1,2,1,1,1,2)。
由 ChatGPT 4.1 翻译