Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, Python
Cho ~N~ đoạn dây có độ dài lần lượt là ~a_1, a_2, ..., a_N~. Người ta cần ít nhất ~K~ đoạn dây bằng nhau bằng cách cắt ~N~ đoạn dây đã cho với điều kiện:
- Mỗi đoạn dây bị cắt có thể có phần thừa khác ~0~;
- Các đoạn dây không thể nối lại được với nhau.
Yêu cầu
Tìm cách cắt sao cho độ dài của mỗi đoạn trong ~K~ đoạn dây nhận được là lớn nhất. Nếu không có cách cắt thì đưa ra số ~0~.
Dữ liệu đầu vào
Gồm hai dòng:
- Dòng thứ nhất chứa hai số nguyên dương ~N,\ K~ ~(0 < N \le 10^5,\ 0 < K \le 10^9)~;
- Dòng tiếp theo chứa ~N~ số nguyên dương ~a_1, a_2, ..., a_N~ ~(0 < a_{i} \le 10^9,\ i = 1, 2, ..., N)~, các số ghi cách nhau một dấu cách.
Dữ liệu đầu ra
Gồm một số nguyên là độ dài lớn nhất của mỗi đoạn trong ~K~ đoạn dây nhận được sau khi cắt.
Ràng buộc dữ liệu
- Có 60% test ứng với 60% số điểm có ~N \le 10^3~ và ~0 \le a_{i} \le 10^3~;
- Có 40% test ứng với 40% số điểm có ~10^3 < N \le 10^5~ và ~0 < a_{i} \le 10^9~.
Ví dụ
Ví dụ 1
INPUT
4 7
4 13 5 8
OUTPUT
4
Giải thích:
- Đoạn ~1~ có độ dài ~4~ cắt ra ~1~ đoạn có độ dài ~4~ và dư ra ~0~;
- Đoạn ~2~ có độ dài ~13~ cắt ra ~3~ đoạn, mỗi đoạn dài ~4~ và dư ra ~1~;
- Đoạn ~3~ có độ dài ~5~ cắt ra ~1~ đoạn có độ dài ~4~ và dư ra ~1~;
- Đoạn ~4~ có độ dài ~8~ cắt ra ~2~ đoạn, mỗi đoạn dài ~4~ và dư ra ~0~.
~\Rightarrow~ Có ~7~ ~(1 + 3 + 1 + 2)~ đoạn, mỗi đoạn có độ dài ~4~.
Với cách làm tương tự nếu chọn độ dài cần cắt là ~5~ thì tổng số đoạn bằng nhau được cắt ra là ~4~ (không thỏa mãn điều kiện bài toán).
Bình luận
hi ae