编程题
### 问题描述
小蓝现在有一个长度为 $n$ 的正整数序列 $a_1,a_2,...,a_n$ 。她可以对数组进行任意次删除操作。每次删除操作分为以下两步:
- 选择数组中的一个元素 $a_i$ ,将这个元素从数组中删除,小蓝获得 $a_i$ 个金币。
- 将所有元素值为 $a_i-1$ 和 $a_i+1$ 的数全部从数组中删除。
小蓝现在想获得尽可能多的金币,但是小蓝不知道如何操作才能使金币最大,请你帮她计算一下最多可以获得多少金币。
### 输入格式
第一行输入一个整数,代表 $n$ 。
第二行输入 $n$ 个整数,代表 $a_1,a_2,a_3,...,a_n$ 。
### 输出格式
输出一行一个整数,代表小蓝可以获得的最大金币数目。
### 样例输入
```txt
9
1 2 1 3 2 2 2 2 3
```
### 样例输出
```txt
10
```
### 说明
对于样例,小蓝可以第一次选择 $a_2=2$ ,然后删除 $a_2$ 获得两个金币,然后将所有值等于 $1,3$ 的元素从数组中删除,数组变为 $2,2,2,2$ ,然后小蓝再进行 $4$ 次操作,即可删除所有的 $2$ ,再获得 $8$ 个金币,小蓝最大即可获得 $10$ 个金币。
### 评测数据规模
对于 $50$% 的评测数据 $1 \leq n \leq 10^{3} , 1 \leq a[i] \leq 10^{3} $ 。
对于 $100$% 的评测数据 $1 \leq n \leq 10^{5},1 \leq a[i] \leq 10^{5} $ 。