#1659. TỔNG GIÁ TRỊ KHÔNG KỀ NHAU (MAXWEIGHT)

Bộ nhớ: 512 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Cho dãy số nguyên A gồm n phần tử A_1, A_2, \dots, A_n .

Bạn có thể thực hiện thao tác sau một số lần bất kỳ:

  • Chọn một phần tử có giá trị x trong dãy.
  • Nhận được x điểm.
  • Xóa bỏ tất cả các phần tử có giá trị x-1 x+1 ra khỏi dãy (lưu ý: phần tử có giá trị x vừa chọn cũng được coi là đã sử dụng và không thể chọn lại).

Hãy xác định số điểm tối đa bạn có thể nhận được.

Dữ liệu:

  • Dòng đầu tiên chứa số nguyên dương n ( 1 \le n \le 10^5 ).
  • Dòng thứ hai chứa n số nguyên A_1, A_2, \dots, A_n ( 1 \le A_i \le 10^5 ).

Kết quả:

  • Một số nguyên duy nhất là tổng số điểm tối đa có thể đạt được.

Ví dụ:

Dữ liệu:

2
1 2

Kết quả:

2

Giải thích:

  • Nếu chọn phần tử có giá trị 1 , phần tử có giá trị 2 ( 1+1 ) bị xóa. Tổng điểm là 1 .
  • Nếu chọn phần tử có giá trị 2 , phần tử có giá trị 1 ( 2-1 ) bị xóa. Tổng điểm là 2 .
  • Số điểm tối đa là 2 .

Dữ liệu:

9
1 2 1 3 2 2 2 2 3

Kết quả:

10

Giải thích:

  • Các giá trị hiện có: số 1 (2 lần), số 2 (5 lần), số 3 (2 lần).
  • Nếu chọn tất cả các số 2 , ta nhận 2 \times 5 = 10 điểm. Khi đó tất cả các số 1 và số 3 bị xóa.
  • Nếu chọn tất cả các số 1 và số 3 , ta nhận (1 \times 2) + (3 \times 2) = 8 điểm. Khi đó tất cả các số 2 bị xóa.
  • Kết quả tối đa là 10 .

Giới hạn:

  • Subtask #1 (20% số điểm): n \le 20 .
  • Subtask #2 (20% số điểm): n \le 10^3, A_i \le 10^3 .
  • Subtask #3 (20% số điểm): n \le 10^5, A_i \le 10^5 và tất cả các phần tử trong A đều phân biệt ( A_i \neq A_j với mọi i \neq j ).
  • Subtask #4 (40% số điểm): Không có ràng buộc gì thêm.