题目描述
項数 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 が成り立つ。
存在する場合には、そのようなものをひとつ出力してください。
输入格式
入力は以下の形式で標準入力から与えられます。
N S1 … SN
输出格式
問題の条件を満たす整数列 A が存在するならば Yes
を、そうでなければ No
を出力してください。 Yes
の場合には、2 行目にそのような整数列 A の各要素を、空白で区切って 1 行で出力してください。
A1 … AN+2
条件を満たす整数列が複数存在する場合は、どれを出力しても正解となります。
5
6 9 6 6 5
Yes
0 4 2 3 1 2 2
5
0 1 2 1 0
No
1
10
Yes
0 0 10
提示
制約
- 1≤ N≤ 3× 105
- 0≤ Si≤ 109
Sample Explanation 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。