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

题目描述

\hspace{15pt}给定一个长度为 n 的数组 a_1,a_2,\dots,a_n,现在你需要执行恰好一次如下操作:
\hspace{15pt}\bullet\,选择两个不同的位置 i,j \left ( 1\leqq i,j\leqq n;\ i\ne j\right ),使得 a_i 变为 a_i+1a_j 变为 a_j-1
\hspace{15pt}现在,我们想知道,对于每一种不同的操作方式后得到的新数组(不包含不操作的情况),它们的众数都会是什么。你需要将全部可能称为众数的数字去重后,从小到大依次输出。

【名词解释】
\hspace{15pt}一个数组的众数:指的是这个数在数组中的出现次数最多,如果有多个数出现次数最多,则这些数中最大的那个数是众数,如:\{1,2,2,4\} 的众数为 2\{3,3,2,2,1,1\} 的众数为 3

输入描述:

\hspace{15pt}第一行输入一个整数 n \left ( 2\leqq n\leqq 10^3 \right ),表示数组的大小。 
\hspace{15pt}第二行输入 n 个整数 a_1,a_2,\dots,a_n \left ( 1\leqq a_i\leqq 10^6 \right ),表示数组的元素。

输出描述:

\hspace{15pt}在一行上从小到大依次输出去重后的若干个整数,代表所有可能出现的众数。
示例1

输入

复制
5
1 4 4 4 5

输出

复制
4 5
示例2

输入

复制
4
1 2 3 4

输出

复制
1 2 3 4 5