Xưởng Bánh
Xem dạng PDFYunzi có ~n~ chiếc máy làm bánh. Máy thứ ~i~ cần đúng ~t_i~ phút để làm xong một chiếc bánh.
Tất cả các máy chạy song song và không nghỉ: máy thứ ~i~ làm xong chiếc bánh đầu tiên ở phút ~t_i~, chiếc thứ hai ở phút ~2 t_i~, chiếc thứ ba ở phút ~3 t_i~, và cứ thế tiếp tục.
Yunzi cần ít nhất ~k~ chiếc bánh. Hỏi cần ít nhất bao nhiêu phút?
Dữ liệu vào
- Dòng đầu tiên chứa hai số nguyên ~n~ và ~k~.
- Dòng thứ hai chứa ~n~ số nguyên ~t_1, t_2, \ldots, t_n~.
Kết quả
In ra số phút nhỏ nhất để có được ít nhất ~k~ chiếc bánh.
Ví dụ
Đầu vào:
3 5
1 2 3
Đầu ra:
3
Giải thích: Sau ~3~ phút, máy thứ nhất làm được ~3~ chiếc, máy thứ hai làm được ~1~ chiếc, máy thứ ba làm được ~1~ chiếc, tổng cộng ~5~ chiếc — vừa đủ. Sau ~2~ phút chỉ có ~2 + 1 + 0 = 3~ chiếc nên chưa đủ.
Giới hạn
- ~1 \le n \le 10^5~
- ~1 \le k \le 10^9~
- ~1 \le t_i \le 10^9~
Sau ~T~ phút, máy thứ ~i~ làm được ~\left\lfloor T / t_i \right\rfloor~ chiếc bánh. Tổng số bánh không giảm khi ~T~ tăng, đó là tính đơn điệu cho phép chặt nhị phân trên ~T~.
Đáp án có thể lên tới ~10^{18}~ nên không vừa trong số nguyên 32 bit. Ngoài ra tổng ~\sum \left\lfloor T / t_i \right\rfloor~ có thể lên tới ~10^{23}~ và tràn số nguyên 64 bit — hãy dừng việc cộng dồn ngay khi đã đủ ~k~ chiếc.
Bình luận