Preparing NOJ

Alex doesn't like boredom. That's why whenever he gets bored, he comes up with games. One long winter evening he came up with a game and decided to play it.

Given a sequence *a* consisting of *n* integers. The player can make several steps. In a single step he can choose an element of the sequence (let's denote it *a*_{k}) and delete it, at that all elements equal to *a*_{k} + 1 and *a*_{k} - 1 also must be deleted from the sequence. That step brings *a*_{k} points to the player.

Alex is a perfectionist, so he decided to get as many points as possible. Help him.

The first line contains integer *n* (1 ≤ *n* ≤ 10^{5}) that shows how many numbers are in Alex's sequence.

The second line contains *n* integers *a*_{1}, *a*_{2}, ..., *a*_{n} (1 ≤ *a*_{i} ≤ 10^{5}).

Print a single integer — the maximum number of points that Alex can earn.

2

1 2

2

3

1 2 3

4

9

1 2 1 3 2 2 2 2 3

10

Consider the third test example. At first step we need to choose any element equal to 2. After that step our sequence looks like this [2, 2, 2, 2]. Then we do 4 steps, on each step we choose any element equals to 2. In total we earn 10 points.

Info

Provider CodeForces

Origin Codeforces Round #260 (Div. 1)

Code CF455A

Tags

dp

Submitted 156

Passed 64

AC Rate 41.03%

Date 03/03/2019 22:39:44

Related