#1454. 聚会(party)

聚会(party)

题目描述

小 C 很久没有见到老朋友了,所以他想组织一次聚会。

小 C 目前有 nn 位老朋友的 QQ,他给每位朋友发送了聚会邀请。第 ii 位朋友会告诉小 C 参会的条件:假如他参加聚会后,聚会的总人数(包括小 C 本人)超过 aia_i,那么他就一定会参加。

根据朋友们的反馈,小 C 需要制定一份聚会名单(其中包括小 C),该名单需要满足以下两个要求:

  • 名单中的朋友均满足各自的参会条件;
  • 不在名单中的朋友均不满足各自的参会条件。

小 C 想知道,最终名单中总人数的所有可能取值。需要注意的是,因为小 C 本人一定在名单中,聚会至少有 11 人参加(此时没有朋友参加)。由于数据保证所有的 ai≤na_i \le n,所以一定存在可行的方案。请将所有可能的总人数按从小到大的顺序输出。

输入格式

第一行包含一个整数 nn —— 表示老朋友的数量。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n —— 表示每个老朋友对聚会人数的要求。

输出格式

输出一行,包含若干个整数,从小到大依次表示所有可能的聚会总人数,相邻两个数字之间用一个空格隔开。

样例输入 1

3
1 3 3

样例输出 1

2 4

样例输入 2

8
1 2 3 4 5 6 7 8

样例输出 2

9

说明

样例解释

  • 样例 11 解释: 当聚会总人数为 22 时,名单为 {\{小 C, 第 11 个朋友}\}。此时第 11 个朋友的参会条件(2>12 > 1)被满足,而不在名单内的第 22 个朋友若加入则总人数为 33,不满足超过 33(即 3>33 > 3 为假),同理第 33 个朋友也不满足,故方案合法。 当聚会总人数为 33 时,可以证明不存在任何合法的名单方案。 当聚会总人数为 44 时,所有的朋友都在名单内。加入小 C 共 44 人,每个人若加入总人数均为 44,44 分别大于 1,3,31, 3, 3,均满足条件,方案合法。
  • 样例 22 解释: 首先,小 C 必定在名单中,初始人数为 11。 假如第 11 个朋友参会,总人数会变成 22,超过了其人数 11 的要求,故第 11 个朋友必须参会; 假如第 22 个朋友参会,总人数会变成 33,超过了其人数 22 的要求,故第 22 个朋友必须参会; 以此类推,为了满足不在名单中的朋友也不满足条件的限制,所有的朋友最终都必须在名单中,聚会总人数必定为 99。

其它样例说明

  • 样例 33:见选手附加文件目录下的 party/party3.in 和 party/party3.ans。该组数据满足 n≤2000n \le 2000 的约束条件。

数据范围

  • 对于 30%30\% 的数据,保证 n=3n = 3。
  • 对于 50%50\% 的数据,保证 n≤15n \le 15。
  • 对于 80%80\% 的数据,保证 n≤2000n \le 2000。
  • 对于 100%100\% 的数据,保证 1≤n≤2×1051 \le n \le 2 \times 10^5。
  • 对于 100%100\% 的数据,保证 1≤ai≤n1 \le a_i \le n。
  • 保证所有的输入数值均为整数。

点击下载大样例