B - Sum of Three Terms Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 500

問題文

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

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

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

制約

  • 1\leq N\leq 3\times 10^5
  • 0\leq S_i\leq 10^9

入力

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

N
S_1 \ldots S_N

出力

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

A_1 \ldots A_{N+2}

条件を満たす整数列が複数存在する場合は、どれを出力しても正解となります。


入力例 1

5
6 9 6 6 5

出力例 1

Yes
0 4 2 3 1 2 2

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

  • 6 = 0 + 4 + 2
  • 9 = 4 + 2 + 3
  • 6 = 2 + 3 + 1
  • 6 = 3 + 1 + 2
  • 5 = 1 + 2 + 2

入力例 2

5
0 1 2 1 0

出力例 2

No

入力例 3

1
10

出力例 3

Yes
0 0 10

Score : 500 points

Problem Statement

You are given a sequence of N integers S = (S_1, \ldots, S_N). Determine whether there is a sequence of N+2 integers A = (A_1, \ldots, A_{N+2}) that satisfies the conditions below.

  • 0\leq A_i for every i (1\leq i\leq N+2).
  • S_i = A_{i} + A_{i+1} + A_{i+2} for every i (1\leq i\leq N).

If it exists, print one such sequence.

Constraints

  • 1\leq N\leq 3\times 10^5
  • 0\leq S_i\leq 10^9

Input

Input is given from Standard Input from the following format:

N
S_1 \ldots S_N

Output

If there is a sequence A that satisfies the conditions, print Yes; otherwise, print No. In the case of Yes, print an additional line containing the elements of such a sequence A, separated by spaces.

A_1 \ldots A_{N+2}

If there are multiple sequences satisfying the conditions, you may print any of them.


Sample Input 1

5
6 9 6 6 5

Sample Output 1

Yes
0 4 2 3 1 2 2

We can verify that S_i = A_i + A_{i+1} + A_{i+2} for every i (1\leq i\leq N), as follows.

  • 6 = 0 + 4 + 2.
  • 9 = 4 + 2 + 3.
  • 6 = 2 + 3 + 1.
  • 6 = 3 + 1 + 2.
  • 5 = 1 + 2 + 2.

Sample Input 2

5
0 1 2 1 0

Sample Output 2

No

Sample Input 3

1
10

Sample Output 3

Yes
0 0 10