#arc153c. [arc153_c]± Increasing Sequence

[arc153_c]± Increasing Sequence

题目描述

给定一个长度为NN的序列A=(A1,,AN)A = (A_1, \ldots, A_N),其中每个元素为111-1

判断是否存在一个整数序列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,请在下一行打印这样的整数序列xx的元素,用空格分隔。

x1x_1 \ldots xNx_N

如果有多个整数序列满足条件,可以输出其中任意一个。


示例输入 1

5
-1 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


示例输入 2

1
-1

示例输出 2

Yes
0

示例输入 3

2
1 -1

示例输出 3

No