快速排序(Quicksort)是由 Tony Hoare 在 1959 年开发的一种递归排序算法。该算法的主要步骤之一是划分(partition)步骤:给定数组中的一个元素 $p$(枢轴元素),将数组中的元素重新排列,使得 $X_L$ 中的所有值均 $\le p$,且 $X_R$ 中的所有元素均 $> p$,如下图所示。
上图展示了一个数组在以枢轴元素 13 进行划分前后的状态。请注意,$X_L$ 和 $X_R$ 中的元素通常不是有序的,且其中任何一个部分都可能为空。
Figure A.1: 划分前后的数组
划分是如何执行的以及如何选择枢轴元素是引人入胜的问题,但我们并不关心。我们希望你完成的任务如下:给定一个数组,确定所有可能作为枢轴值的元素,假设该数组已经过划分,或者确定该数组尚未被划分。
输入格式
输入以一个正整数 $n$ ($1 \le n \le 10^6$) 开头,表示数组的大小。随后是 $n$ 个正整数,表示数组中的值。所有值都是唯一的且 $\le 10^6$。
输出格式
输出 $m$,即数组中可能作为划分数组的枢轴值的数量,随后按这些枢轴值在输入中出现的顺序输出它们。如果 $m > 100$,则仅输出前 100 个枢轴值。注意,$m = 0$ 表示该数组未被划分。
样例
输入格式 1
10 1 11 8 13 53 20 63 99 79 94
输出格式 1
3 1 13 63