atcoder#ARC135B. [ARC135B] Sum of Three Terms

[ARC135B] Sum of Three Terms

题目描述

項数 N N の整数列 S = (S1, , SN) S\ =\ (S_1,\ \ldots,\ S_N) が与えられます。 項数 N+2 N+2 の整数列 A = (A1, , AN+2) A\ =\ (A_1,\ \ldots,\ A_{N+2}) であって、次の条件を満たすものが存在するか否かを判定してください。

  • 任意の i i (1 i N+2 1\leq\ i\leq\ N+2 ) に対して 0 Ai 0\leq\ A_i が成り立つ。
  • 任意の i i (1 i N 1\leq\ i\leq\ N ) に対して、Si = Ai + Ai+1 + Ai+2 S_i\ =\ A_{i}\ +\ A_{i+1}\ +\ A_{i+2} が成り立つ。

存在する場合には、そのようなものをひとつ出力してください。

输入格式

入力は以下の形式で標準入力から与えられます。

N N S1 S_1 \ldots SN S_N

输出格式

問題の条件を満たす整数列 A A が存在するならば Yes を、そうでなければ No を出力してください。 Yes の場合には、2 2 行目にそのような整数列 A A の各要素を、空白で区切って 1 1 行で出力してください。

A1 A_1 \ldots AN+2 A_{N+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 1\leq\ N\leq\ 3\times\ 10^5
  • 0 Si 109 0\leq\ S_i\leq\ 10^9

Sample Explanation 1

以下のように、任意の i i (1 i N 1\leq\ i\leq\ N ) に対して Si = Ai + Ai+1 + Ai+2 S_i\ =\ A_i\ +\ A_{i+1}\ +\ A_{i+2} が成り立つことが確認できます。 - 6 = 0 + 4 + 2 6\ =\ 0\ +\ 4\ +\ 2 。 - 9 = 4 + 2 + 3 9\ =\ 4\ +\ 2\ +\ 3 。 - 6 = 2 + 3 + 1 6\ =\ 2\ +\ 3\ +\ 1 。 - 6 = 3 + 1 + 2 6\ =\ 3\ +\ 1\ +\ 2 。 - 5 = 1 + 2 + 2 5\ =\ 1\ +\ 2\ +\ 2