Mika đến của hàng gần nhà để mua quà tặng bạn bè vào dịp năm mới. Cửa hàng bán \(n\) món quà, món quà thứ \(i\) có giá là \(a_{i}\) đồng. Cửa hàng đang có chương trình khuyến mãi đặc biệt: nếu bạn mua chính xác \(k\) món quà, bạn sẽ chỉ trả tiền cho món quà có giá đắt nhất trong \(k\) món quà bạn chọn.
Mika có \(p\) đồng, anh ta muốn mua càng nhiều quà càng tốt với số tiền anh ta có. Mika có thể thực hiện một trong các thao tác sau nhiều lần nếu cần:
+ Mika có thể mua một món quà với chỉ số \(i\) nếu anh ta hiện có đủ tiền (tức là \(p\ \geq a_{i}\)). Sau khi mua món quà này, số tiền của Mika giảm đi \(a_{i}\) đồng (tức là \(p\ = \ p - a_{i}\)).
+ Mika có thể mua một món quà với chỉ số \(i\), và cũng chọn chính xác \(k - 1\) món quà khác có giá không vượt quá \(a_{i}\), nếu anh ta hiện có đủ tiền (tức là \(p\ \geq \ a_{i}\)). Do đó, anh ta mua tất cả \(k\) món quà này và số tiền của anh ta giảm đi \(a_{i}\) đồng (tức là \(p\ = \ p - a_{i}\)).
Lưu ý rằng mỗi món quà chỉ có thể được mua không quá một lần.
Yêu cầu: Hãy giúp Mika xác định số lượng món quà tối đa anh ta có thể mua.
Dữ liệu vào:
+ Dòng 1: Chứa ba số nguyên \(n,\ p,\ k\ (2\ \leq \ n\ \leq \ 10^{5},\ 1\ \leq \ p \leq 10^{9},\ 2 \leq k \leq \ n)\).
+ Dòng 2: Chứa \(n\) số nguyên \(a_{1},\ a_{2},\ \ldots,\ a_{n}\ (1 \leq a_{i} \leq 10^{4})\) là giá của \(n\) món quà.
Kết quả:
+ Một số nguyên duy nhất là số lượng món quà tối đa mà Mika có thể mua được.
Ví dụ:
Input | Output |
---|---|
5 6 2 2 4 3 5 7 | 3 |
Giải thích:
+ Đầu tiên, Mika mua món quà số 1 và trả 2 đồng. Sau đó mua hai món quà số 2 và 3 chỉ trả 4 đồng.
Code tích cực |
---|
Trong 24h |
Trong 7 ngày |
|
Trong 30 ngày |
|
Thống kê |
---|
AC/Sub: 97887/180710 Pascal: 17121 C++: 130348 Python: 33199 Lượt xem/tải tests: 38905 |