atcoder#ARC153C. [ARC153C] ± Increasing Sequence

[ARC153C] ± Increasing Sequence

配点 : 600600

問題文

111-1 のみからなる長さ NN の数列 A=(A1,,AN)A = (A_1, \ldots, A_N) が与えられます.

以下の条件をすべて満たす整数列 x=(x1,,xN)x = (x_1, \ldots, x_N) が存在するか否かを判定し, 存在する場合にはそのような整数列をひとつ答えてください.

  • 任意の ii (1iN1\leq i\leq N) に対して xi1012|x_i| \leq 10^{12}
  • xx は狭義単調増加である.つまり x1<<xNx_1 < \cdots < x_N
  • i=1NAixi=0\sum_{i=1}^N A_ix_i = 0

制約

  • 1N2×1051\leq N\leq 2\times 10^5
  • Ai{1,1}A_i \in \lbrace 1, -1\rbrace

入力

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

NN

A1A_1 \ldots ANA_N

出力

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

x1x_1 \ldots xNx_N

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

5
-1 1 -1 -1 1
Yes
-3 -1 4 5 7

この出力について i=1NAixi=(3)+(1)45+7=0\sum_{i=1}^NA_ix_i= -(-3) + (-1) - 4 - 5 + 7 = 0 となります.

1
-1
Yes
0
2
1 -1
No