#P1030. 删数字游戏

删数字游戏

题目描述

每当小明感到无聊时,就会想出一个游戏。在一个漫长的冬夜,他想出了一个游戏并决定玩它。

给定一个由 nn 个整数组成的序列 aa。玩家可以进行若干步。在一步中,他可以选择序列中的一个元素(记为 aka_k)并删除它,同时所有等于 ak+1a_k+1 和 ak−1a_k-1 的元素也必须从序列中删除。这一步给玩家带来 aka_k 分。

小明是一个完美主义者,因此他决定尽可能获得最多的分数。帮助他。

输入格式

第一行包含整数 nn(1≤n≤1051 \le n \le 10^5),表示小明的序列中有多少个数字。

第二行包含 nn 个整数 a1,a2,⋯ ,ana_1, a_2, \cdots, a_n(1≤ai≤1051 \le a_i \le 10^5)。

输出格式

输出一个整数——小明能获得的最大分数。

样例 1

2
1 2
2

样例 2

3
1 2 3
4

样例 3

9
1 2 1 3 2 2 2 2 3
10

样例 3 解释

第一步,我们需要选择任意一个等于 22 的元素。这一步之后,我们的序列看起来像 [2,2,2,2][2,2,2,2]。然后我们进行 44 步,每一步选择任意一个等于 22 的元素。总共我们获得 1010 分。

数据规模与约定

  • 对于 20%20\% 的数据,n,ai≤100n, a_i \le 100
  • 对于 100%100\% 的数据,1≤n,ai≤1051 \le n, a_i \le 10^5