平均数
题号:NC295394
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}班上有 n 名同学,其中每位同学都有一个数值,但是每位同学并不会告诉你这个数值为多少,他们只会告诉你这个数值是否大于 / 等于 / 小于这 n 个数值的平均数,具体地:
\hspace{23pt}\bullet\,a_i=-1,表示第 i 名同学的数值小于平均数;
\hspace{23pt}\bullet\,a_i=0,表示第 i 名同学的数值等于平均数;
\hspace{23pt}\bullet\,a_i=1,表示第 i 名同学的数值大于平均数。
\hspace{15pt}其中平均数指的是这 n 个数值的平均数值(保留小数点,不四舍五入),如 \{3,4,5,6\} 的平均数为 \tfrac{3+4+5+6}{4}=4.5
\hspace{15pt}但是,它们其中,有些人可能会说谎,请你检查并判断:若给定的这 n 个数 a_i 满足平均数的情况,则输出 \text{YES},否则输出 \text{NO}

输入描述:

\hspace{15pt}第一行输入一个整数 n \left ( 1\leqq n\leqq 10^5 \right ),表示数组 a 的长度。 
\hspace{15pt}第二行输入 n 个整数 a_1,a_2,\dots,a_n \left ( -1\leqq a_i\leqq 1 \right ),表示每一个同学的数字与平均数的关系。

输出描述:

\hspace{15pt}如果给定的这 n 个数 a_i 满足平均数的情况,则输出 \text{YES},否则输出 \text{NO}。注意输出均为大写字母。
示例1

输入

复制
4
0 0 0 0

输出

复制
YES

说明

\hspace{15pt}在这个样例中,假设同学们手上的数值为 \{4,4,4,4\},则平均数为 4,可以得到数组 a=\{0,0,0,0\},满足要求。
示例2

输入

复制
5
1 1 1 1 1

输出

复制
NO

说明

\hspace{15pt}在这个样例中,假设它们平均数为 x,再假设它们数值为 \{x+k_1,x+k_2, x+k_3, x+k_4,x+k_5 \},其中对于所有的 i \left ( 1\leqq i\leqq 5 \right ),都满足 k_i 为非负实数,则推出平均数为 \tfrac{x+x+x+x+x+k_1+k_2+k_3+k_4+k_5}{5}=x+\tfrac{k_1+k_2+k_3+k_4+k_5}{5}>x,所以找不到一组 k_i 使得两者平均数相同。