Phần quà đặc biệt

Xem dạng PDF

Gửi bài giải

Điểm: 100,00
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Người đăng:
Nguồn bài:
CF
Dạng bài
Ngôn ngữ cho phép
C++, Pascal, Python

Cũng trong nhân dịp đạt được ~100~ triệu subscribers này của TDZ , T đã chọn ra subscriber thứ ~100~ triệu của mình và mời người đó tham gia trò chơi chọn quà. Rất may mắn là bạn chính là subscriber thứ ~100~ triệu của TDZ!

Sau khi gặp gỡ và trò chuyện với T, bạn được T phổ biến về trò chơi. Nội dung của trò chơi như sau: Có ~n~ phần quà trên bàn, mỗi phần quà có giá trị ~a_i \ (1 \le i \le n)~. Bạn sẽ được thực hiện thao tác chọn quà như sau nhiều lần: Đầu tiên, bạn chọn một phần quà bất kỳ trên bàn, giả sử nó có giá trị là ~x~. Khi đó, tất cả những phần quà có giá trị là ~x - 1~ và ~x + 1~ sẽ bị lấy ra khỏi bàn. Trò chơi kết thúc khi bạn không thể thực hiện thao tác chọn quà bất cứ một lần nào nữa và bạn sẽ được mang về tất cả những phần quà còn lại trên bàn.

Hãy tối ưu cách chơi của bạn để tổng giá trị của các phần quà bạn mang về là lớn nhất.

Input

  • Dòng đầu tiên chứa số nguyên dương ~n \ (n \le 10^5);~
  • Dòng tiếp theo chứa ~n~ số nguyên ~a_i \ (1 \le a_i \le 10^5, \ 1 \le i \le n).~

Output

In ra kết quả là tổng giá trị phần quà lớn nhất mà bạn có thể mang về được trong trò chơi.

Examples

Input
3
1 3 2
Output
4

Giải thích: Cách chọn quà tối ưu như sau:

  • Chọn phần quà có giá trị là ~1 \rightarrow~ Các phần quà có giá trị là ~2~ bị bỏ ra khỏi bàn.
  • Chọn phần quà có giá trị là ~3~.

Khi đó, tổng giá trị các phần quà bạn có thể mang về là: ~1 + 3 = 4~.

Input
5
4 1 1 2 3
Output
6

Giải thích: Cách chọn quà tối ưu như sau:

  • Chọn phần quà có giá trị là ~2 \rightarrow~ Các phần quà có giá trị là ~1~ và ~3~ bị bỏ ra khỏi bàn.
  • Chọn phần quà có giá trị là ~4~.

Khi đó, tổng giá trị các phần quà bạn có thể mang về là: ~4 + 2 = 6~.

Input
5
6 6 6 6 6
Output
30

Giải thích: Bạn có thể lấy cả ~5~ phần quà trên bàn mà không phải bỏ phần quà nào.