Bạn có một mảng gồm \(n\) số nguyên dương \(a_1, a_2, \ldots, a_n\).
Bạn được phép thực hiện phép biến đổi sau nhiều lần:
- Chọn hai số \(a_i\) và \(a_j\) (\(i \ne j\)). Nếu \(a_i \ge a_j\) thì xoá \(a_j\) khỏi mảng và tăng \(a_i\) lên \(1\).
Nhiệm vụ: Với một giá trị \(k\) cho trước, hãy biến đổi để số lượng phần tử \(\ge k\) trong mảng là lớn nhất có thể.
Input
- Dòng đầu tiên chứa hai số nguyên \(n\) và \(q\) (\(1 \le n, q \le 10^5\)) — số phần tử và số truy vấn.
- Dòng thứ hai chứa \(n\) số nguyên dương \(a_1, a_2, \ldots, a_n\) (\(1 \le a_i \le 10^9\)).
- Mỗi trong \(q\) dòng tiếp theo chứa một số nguyên \(k_i\) (\(1 \le k_i \le 10^9\)).
Output
In ra \(q\) dòng, dòng thứ \(i\) là số phần tử \(\ge k_i\) nhiều nhất có thể thu được sau khi biến đổi. Mỗi truy vấn được xét độc lập trên mảng ban đầu.
Sample Input 1
5 2
21 9 5 8 10
10
15
Sample Output 1
3
1
Sample Input 2
5 1
1 2 3 4 5
100
Sample Output 2
0
Note
- Với \(k = 10\), chọn phần tử \(9\) và \(8\), tăng \(9\) thành \(10\), xoá \(8\), thu được mảng \((21, 10, 5, 10)\) có \(3\) phần tử \(\ge 10\).
- Với \(k = 15\), dù biến đổi thế nào cũng chỉ có \(1\) phần tử \(\ge 15\).
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.