题目描述
给定一个项数为 N 的整数列 S=(S1,…,SN)。请判断是否存在一个项数为 N+2 的整数列 A=(A1,…,AN+2),满足以下条件:
- 对于任意的 i(1≤i≤N+2),都有 0≤Ai。
- 对于任意的 i(1≤i≤N),都有 Si=Ai+Ai+1+Ai+2。
如果存在,请输出其中一种满足条件的 A。
输入格式
输入从标准输入中给出,格式如下:
N S1 S2 … SN
输出格式
如果存在满足条件的整数列 A,输出 Yes,否则输出 No。如果输出 Yes,则在第二行输出满足条件的整数列 A 的各个元素,空格分隔。
A1 A2 … AN+2
如果存在多组满足条件的解,输出任意一组均可。
样例 1
输入
5
6 9 6 6 5
输出
Yes
0 4 2 3 1 2 2
样例 2
输入
5
0 1 2 1 0
输出
No
样例 3
输入
1
10
输出
Yes
0 0 10
说明/提示
数据范围
- 1≤N≤3×105
- 0≤Si≤109
样例解释 1
可以验证,对于任意的 i(1≤i≤N),都有 Si=Ai+Ai+1+Ai+2 成立。
- 6=0+4+2。
- 9=4+2+3。
- 6=2+3+1。
- 6=3+1+2。
- 5=1+2+2。
由 ChatGPT 4.1 翻译