[Pre-QNOI 2022#02] Mắt biếc

Xem PDF

Nộp bài


Điểm: 10 (thành phần)
Thời gian: 1.0s
Bộ nhớ: 512M

Tác giả:
Dạng bài

Cho dãy n số nguyên a1, a2, a3,..., an. Bạn được phép áp dụng một số thao tác lên dãy này, mỗi thao tác gồm hai bước:

  • Chọn ra hai phần tử kề nhaubằng nhau trong dãy.
  • Xóa đi một trong hai phần tử và tăng phần tử còn lại lên 2 đơn vị.

Dễ thấy rằng, sau m0 lần thực hiện thao tác, dãy số ban đầu sẽ chỉ còn đúng nm phần tử. Gọi v là giá trị lớn nhất trong số nm phần tử này. Bạn hãy lập trình tìm cách áp dụng các thao tác đó m lần tùy ý (m=0 vẫn hợp lệ) sao cho v đạt được giá trị lớn nhất có thể nhé!


Input

  • Dòng đầu chứa số nguyên dương n2.
  • Dòng tiếp theo chứa n số nguyên dương a1, a2,..., an (ai106 với mọi i).

Output

  • Một số nguyên thể hiện giá trị lớn nhất có thể của phần tử còn lại trong dãy.

Ví dụ

Sample input
Copy
4
1 1 1 3
Sample output
Copy
5
Giải thích

Ban đầu ta thao tác ở hai phần tử 1 tại vị trí thứ nhì và thứ ba để thu được dãy [1,3,3]. Tiếp theo ta thao tác ở hai phần tử sau cùng để thu được dãy [1,5]. Giá trị tối ưu thu được là 5.


Ràng buộc

  • Subtask 1 (30% số điểm): n10.
  • Subtask 2 (70% số điểm): n300.