[HSG-QH_TPHT_HT_24] Đố vui

Xem dạng PDF

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

Hãy đọc nội quy trước khi bình luận.