Dãy số ~b_1, b_2, ..., b_k~ được gọi là dãy đẹp nếu thỏa mãn điều kiện sau: với mỗi giá trị ~b_i~ trong dãy, số lần xuất hiện của nó trong dãy là đúng ~b_i~ lần. Dãy rỗng cũng được xem là dãy đẹp.
Ví dụ
Dãy ~4, 4, 1, 2, 4, 2, 4~ là dãy đẹp vì giá trị ~4~ xuất hiện ~4~ lần, ~1~ xuất hiện ~1~ lần, ~2~ xuất hiện ~2~ lần. Dãy ~2, 5, 1, 2~ không phải là dãy đẹp vì ~5~ xuất hiện ~1~ lần.
Yêu cầu:
Cho dãy số nguyên gồm ~N~ phần tử ~a_1, a_2,….a_N~. Một thao tác cho phép ta xóa một phần tử có sẵn trong dãy, hoặc thêm một phần tử có giá trị nguyên bất kỳ vào dãy. Tìm số thao tác ít nhất để a trở thành một dãy đẹp.
Dữ liệu (Vào từ tệp DAYDEP.INP)
- Dòng đầu chứa số nguyên dương ~N~ (~1 \leq N \leq 10^6~)
- Dòng thứ hai chứa ~N~ số nguyên ~a_1, a_2, ..., a_N~ cách nhau bởi dấu cách (~0 \leq a_i \leq 10^{9}~)
Kết quả (Xuất ra tệp DAYDEP.OUT)
Đưa ra tệp DAYDEP.OUT một số duy nhất là số lượng thao tác ít nhất cần thực hiện để dãy trở thành dãy đẹp.
Ví dụ
Input
5
2 5 1 2 5
Output
2
Note
Xóa ~2~ số ~5~ thì dãy còn ~3~ phần tử ~2, 1, 2~ là dãy đẹp.
Subtask
- ~20\%~ số test tương ứng với ~20\%~ số điểm có ~a_i \leq 5~.
- ~40\%~ số test tương ứng với ~40\%~ số điểm có ~a_i \leq 10^6~.
- ~40\%~ số test còn lại tương ứng với ~40\%~ số điểm không có ràng buộc gì thêm.
Bình luận