Chọn ĐTQG Hà Nội 2026 - Dãy hoàn hảo

Xem dạng PDF

Gửi bài giải

Điểm: 8,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Cho một dãy số nguyên dương gồm ~N~ số ~a_1,a_2,\dots,a_N~. Dãy số được gọi là hoàn hảo nếu phần tử có giá trị ~a_i~ xuất hiện đúng ~a_i~ lần trong dãy số đó ~(1 \le i \le N)~.

Yêu cầu: Tìm cách xoá tối đa một phần tử của dãy số ban đầu để dãy số trở thành dãy số hoàn hảo.

Input

  • 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 dương ~a_1,a_2,\dots,a_N~ ~(1 \le a_i \le 10^5)~.

Output

Một số nguyên là một trong những trường hợp sau:

  • Nếu dãy ban đầu đã là dãy hoàn hảo, in ra ~0~;

  • Nếu dãy ban đầu không là dãy hoàn hảo và cần xoá đi một phần tử để trở thành dãy hoàn hảo, in ra giá trị phần tử cần xoá;

  • Nếu không thể biến đổi thành dãy hoàn hảo, in ra ~-1~.

Scoring

Subtask Điểm Ràng buộc
1 ~80\%~ ~N \le 1000~
2 ~20\%~ Không có ràng buộc thêm

Sample Input 1

4
3 1 3 3

Sample Output 1

0

Sample Input 2

4
3 2 3 3

Sample Output 2

2

Sample Input 3

5
3 1 1 3 3

Sample Output 3

1

Sample Input 4

5
3 4 4 3 3

Sample Output 4

-1

Notes

Trong ví dụ thứ nhất, dãy đã cho là dãy hoàn hảo vì có ~1~ phần tử có giá trị ~1~ và ~3~ phần tử có giá trị ~3~.

Trong ví dụ thứ hai, xoá một phần tử có giá trị ~2~ thì dãy số trở thành ~[3,3,3]~ là dãy hoàn hảo.

Trong ví dụ thứ ba, xóa một phần tử có giá trị ~1~ thì dãy số trở thành ~[3,1,3,3]~ là dãy hoàn hảo.

Trong ví dụ thứ tư, không thể biến đổi thành dãy hoàn hảo.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.