沙摩柯
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}蒺藜骨硬夷万敌,五溪水恶困千军!
\hspace{15pt}蛮王驭犀惊五蠹,一箭穿云毙锦衣!
\hspace{15pt}蛮夷知汉节,虽死气犹惊!
\hspace{15pt}沙摩柯是三国杀游戏的一个武将。

\hspace{15pt}沙摩柯手上有 n 张牌,其中第 i 张牌的攻击范围为 a_i
\hspace{15pt}沙摩柯可以以任意顺序打出自己手上的牌,当打出的第 x 张牌的攻击范围恰好为 x 时,他就可以获得 x 个元宝。
\hspace{15pt}请问沙摩柯最多能获得几个元宝?

输入描述:

\hspace{15pt}第一行输入一个正整数 n \left(1 \leq n \leq 10^5\right) 代表沙摩柯的手牌数量。 
\hspace{15pt}第二行输入 n 个整数 a_1, a_2, \dots, a_n \left(1 \leq a_i \leq 10^5\right) 代表每一张牌的攻击范围。

输出描述:

\hspace{15pt}输出一个整数,代表沙摩柯最多能获得的元宝数量。
示例1

输入

复制
5
1 2 3 4 5

输出

复制
15

说明

\hspace{15pt}在这个样例中,依次打出 1,2,3,4,5,可以获得 15 个元宝。显然,任何其他顺序都无法获得比 15 更多的元宝。
示例2

输入

复制
3
5 10 2

输出

复制
2

说明

\hspace{15pt}在这个样例中,一共有六种不同的打出顺序:
\hspace{23pt}\bullet\,依次打出 5,10,2,获得 0 个元宝;
\hspace{23pt}\bullet\,依次打出 5,2,10,获得 2 个元宝;
\hspace{23pt}\bullet\,依次打出 10,5,2,获得 0 个元宝;
\hspace{23pt}\bullet\,依次打出 10,2,5,获得 2 个元宝;
\hspace{23pt}\bullet\,依次打出 2,5,10,获得 0 个元宝;
\hspace{23pt}\bullet\,依次打出 2,10,5,获得 0 个元宝。
\hspace{15pt}综上,最多只能获得 2 个元宝。