#P1775. 子段和

子段和

Description

给定一个序列,问你有没有可能重新排列这个序列使得所有长度小于等于 2 的子段和不等于 0

子段与子段和的概念:

给定一个由数字组成的序列,其中一段连续的序列称为一个​子段​(假设非空),子段中所有的数字和就是为 子段和

例子:

{1,2,3,4}

连续子段有 {1} {1,2} {1,2,3} {1,2,3,4} {2,3} {2,3,4} {3,4} {4}

Input Format

第一行一个 n 表示序列长度,接下来一行 n 个数,第 i 个为 aia_i,表示序列中的第 i 个数。

1n5×105,2×109ai2×1091≤n≤5×10^5,−2×10^9≤a_i≤2×10^9

Output Format

一行一个字符串。"YES"表示可能重新排列这个序列使得所有长度小于等于 2 的子区间和不等于 0,反之则输出“NO”。输出不含引号。

4
1 1 -1 1​
NO