Một công ty công nghệ chuyên giao hàng theo đơn bằng đội nhân viên của công ty. Trong công ty này có \(n\) nhân viên. Nhân viên thứ \(i\) có thời gian hoàn thành giao một đơn hàng trong \(a_i\) giờ. Các nhân viên này giao hàng một cách độc lập.
Yêu cầu:
- Hãy lập trình xác định thời gian nhỏ nhất để công ty hoàn thành giao được \(k\) đơn hàng.
Dữ liệu vào:
- Dòng đầu ghi hai số \(n, k\) \((n \le 10^5, k \le 10^5)\) cách nhau một ký tự trắng, là số lượng nhân viên và số lượng đơn hàng cần hoàn thành.
- Dòng tiếp theo ghi các giá trị \(a_i\) \((a_i \le 10^3)\)là thời gian hoàn thành một đơn hàng của nhân viên thứ \(i\), các số kể nhau cách nhau một ký tự trắng.
Kết quả:
- Một số là kết quả tìm được.
Input 1
4 7
1 4 2 5
Output 1
4
Giải thích:
- Có 4 nhân viên, thời gian hoàn thành của mỗi nhân viên lần lượt là (1, 4, 2, 5) giờ.
- Có 7 đơn hàng cần giao.
- Trong 4 giờ: Nhân viên 1 giao 4 đơn, nhân viên 2 giao 1 đơn, nhân viên 3 giao 2 đơn.
Input 2
5 12
2 4 4 4 5
Output 2
10
Giải thích:
- Có 5 nhân viên, thời gian hoàn thành của mỗi nhân viên lần lượt là (2, 4, 4, 4, 5) giờ.
- Có 12 đơn hàng cần giao.
- Trong 10 giờ: Nhân viên 1 giao 5 đơn, nhân viên 2 giao 2 đơn, nhân viên 3 giao 2 đơn, nhân viên 4 giao 2 đơn, nhân viên 5 giao 1 đơn.
Ràng buộc:
- 60% số test tương ứng với 60% số điểm có \(n, k \le 10^2\).
- 40% số test còn lại tương ứng với 40% số điểm có \(n, k \le 10^5\).
Nhận xét