AT_arc135_b [ARC135B] Sum of Three Terms
Description
[problemUrl]: https://atcoder.jp/contests/arc135/tasks/arc135_b
項数 $ 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} $ が成り立つ。
存在する場合には、そのようなものをひとつ出力してください。
Input Format
入力は以下の形式で標準入力から与えられます。
> $ N $ $ S_1 $ $ \ldots $ $ S_N $
Output Format
問題の条件を満たす整数列 $ A $ が存在するならば `Yes` を、そうでなければ `No` を出力してください。 `Yes` の場合には、$ 2 $ 行目にそのような整数列 $ A $ の各要素を、空白で区切って $ 1 $ 行で出力してください。
> $ A_1 $ $ \ldots $ $ A_{N+2} $
条件を満たす整数列が複数存在する場合は、どれを出力しても正解となります。
Explanation/Hint
### 制約
- $ 1\leq\ N\leq\ 3\times\ 10^5 $
- $ 0\leq\ S_i\leq\ 10^9 $
### Sample Explanation 1
以下のように、任意の $ 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 $。