#701. 施咒的最大总伤害

施咒的最大总伤害

3186. 施咒的最大总伤害

题目描述

一位魔法师有许多不同的咒语,第 ii 个咒语的伤害值为 power[i]。不同咒语的伤害值可能相同。

魔法师准备从这些咒语中选择若干个来施放,每个咒语至多使用一次。但是存在如下限制:

  • 如果选择了伤害值为 xx 的咒语(任意一个),那么伤害值为
    x2x - 2x1x - 1x+1x + 1x+2x + 2 的咒语都不能再被选择

请你计算,魔法师在遵守上述规则的前提下,可以获得的伤害值之和的最大值


输入格式

  • 第一行包含一个整数 nn1n1051 \leq n \leq 10^5),表示咒语的数量;
  • 第二行包含 nn 个整数 power1,power2,,powernpower_1, power_2, \dots, power_n1poweri1091 \leq power_i \leq 10^9),表示每个咒语的伤害值。

输出格式

输出一个整数,表示在最优选择下可以达到的伤害值总和的最大值。


示例

示例 1:

输入:
4
1 1 3 4

输出:
6

解释:
可以选择伤害值为 1、1 和 4 的三个咒语,总伤害为 1+1+4=61 + 1 + 4 = 6
一旦选择了伤害值为 3 或 4 的咒语,就不能再选择伤害为 1、2、3、4、5 的其他不合法组合。


示例 2:

输入:
4
7 1 6 6

输出:
13

解释:
可以选择伤害值为 1、6、6 的咒语,总伤害为 1+6+6=131 + 6 + 6 = 13
由于选择了 6,伤害值为 4、5、7、8 的咒语都不能再被选择。


数据范围

  • 1n1051 \leq n \leq 10^5
  • 1poweri1091 \leq power_i \leq 10^9