Bỏ qua đến nội dung

Xóa phần tử

Mã bài: olp2024c1c Nhóm: Uncategorized Dạng bài: Undefined

Giới hạn thời gian
1,0 s
Giới hạn bộ nhớ
256 MB
Điểm
100một phần
Tỉ lệ AC
21,6%
Người giải
23

Cho mảng số nguyên a gồm n phần tử được đánh số từ 1 đến n và một số nguyên dương k.

Đầu tiên, tiến hành xóa k phần tử của mảng. Sau đó, gọi f(x) là số lần xuất hiện giá trị x trong mảng sau khi đã xóa đi k phần tử. Gọi F(a) là giá trị f(x) lớn nhất, hay nói cách khác, F(a) là số lần xuất hiện nhiều nhất của một số nguyên.

Bạn hãy tìm cách xóa đi k phần tử sao cho F(a) đạt giá trị nhỏ nhất.

Input

  • Dòng đầu tiên chứa hai số nguyên n và k (1 \le n \le 10^6 ; 0 \le k \le n).
  • Dòng thứ hai chứa n số nguyên của mảng a (1 \le a \le 10^9).

Output

  • In ra giá trị nhỏ nhất của F(a).

Examples

Sample Input
6 2
1 3 2 4 2 3
Sample Output
1

Scoring

  • Subtask 1 - 24\% số điểm: n \le 5000 ; k=0 ; a_i \le n
  • Subtask 2 - 28\% số điểm: k=0
  • Subtask 3 - 30\% số điểm: n \le 5000
  • Subtask 4 - 18\% số điểm: Không có ràng buộc gì thêm

Notes

Trong ví dụ, để tối ưu ta có thể xóa a_2=3 và a_5=2, khi đó mảng trở thành a=[1,2,4,3].

Bình luận