Polycarp Training

题意翻译

Polycarp想要在另外一场比赛中训练,第一天他可以解决一个问题,第二天可以解决两个,以此类推,在第$K$天他可以解决$K$个问题 Polycarp有$N$场比赛,第$i$场比赛有$a$$_i$个问题,每一天他可以选择其中一个他尚未解决的比赛解决,但是要求$a_i$$\ge$$K$,如果在第$K$天尚未解决的比赛中没有大于等于$K$的比赛,则Polycarp终止训练。 那么Polycarp最多能训练多少天呢?

题目描述

Polycarp wants to train before another programming competition. During the first day of his training he should solve exactly $ 1 $ problem, during the second day — exactly $ 2 $ problems, during the third day — exactly $ 3 $ problems, and so on. During the $ k $ -th day he should solve $ k $ problems. Polycarp has a list of $ n $ contests, the $ i $ -th contest consists of $ a_i $ problems. During each day Polycarp has to choose exactly one of the contests he didn't solve yet and solve it. He solves exactly $ k $ problems from this contest. Other problems are discarded from it. If there are no contests consisting of at least $ k $ problems that Polycarp didn't solve yet during the $ k $ -th day, then Polycarp stops his training. How many days Polycarp can train if he chooses the contests optimally?

输入输出格式

输入格式


The first line of the input contains one integer $ n $ ( $ 1 \le n \le 2 \cdot 10^5 $ ) — the number of contests. The second line of the input contains $ n $ integers $ a_1, a_2, \dots, a_n $ ( $ 1 \le a_i \le 2 \cdot 10^5 $ ) — the number of problems in the $ i $ -th contest.

输出格式


Print one integer — the maximum number of days Polycarp can train if he chooses the contests optimally.

输入输出样例

输入样例 #1

4
3 1 4 1

输出样例 #1

3

输入样例 #2

3
1 1 1

输出样例 #2

1

输入样例 #3

5
1 1 1 2 2

输出样例 #3

2