#P5941. [POI1997] ADDON

[POI1997] ADDON

题目背景

科学家们发现了一种新的放射性元素——ADDONADDON 是已知的效率最高的核燃料,因此他们决定建立一个 ADDON 核反应堆。

题目描述

根据计划,一间燃料室是一根竖直的管子。燃料棒(即装有 ADDON 的圆筒)将一根叠一根的被放进燃料室里,搭建成一个圆柱。燃料棒具有不同的高度。

核反应循环开始于将燃料棒放进燃料室中。接下来的步骤才是点火。麻烦的是,圆柱的高度不能是任意的——只有某些特定的高度才能保证反应的安全。这样的高度被称作稳定高度。

现在,反应堆的设计师们面临着两个任务:确定燃料室的高度以及选择一个用于制造 ADDON 的燃料棒的高度集合。

我们说一个高度集合是安全的(对于一个特定高度的燃料室),则有:

  • 对于任意一根由高度属于这个集合的燃料棒搭建而成的,且高度不超过燃料室的高度的圆柱,它的高度一定是稳定的。

我们说一个高度集合是完备的(对于一个特定高度的燃料室),则有:

  • 对于任意一根高度是稳定的,并且其高度不超过燃料室高度的圆柱,都一定能够由高度属于该集合的燃料棒搭建而成。

现在要写一个程序:

    1. 读入一个稳定高度的集合;
    1. 找出存在一个安全且完备的高度集合的核燃料室的最大可能值;
    1. 对于找到的核燃料室,找出一个元素个数最少的安全且完备的高度集合;
    1. 将结果输出。

输入格式

第一行是一个自然数 nn,代表所给的稳定高度的个数。

接下来的 nn 行,每行是一个不超过 1000010000 的正整数。这些数按照升序给出,代表了稳定高度。

输出格式

第一行是找到的燃料室高度的最大可能值。

接下来的每行按照升序给出你所找到的高度集合中的一个元素。

14
5
10
12
15
17
20
21
22
24
26
27
30
31
33
24
5
12
21

提示

对于 100%100\% 的数据,1n100001\le n\le10000