Cắt gỗ 1
Xem dạng PDFMô tả bài toán
Nhà bạn An có ~ N ~ miếng gỗ với chiều dài khác nhau. An muốn xây dựng một hàng rào gồm ~ K ~ miếng gỗ sao cho tất cả các miếng đều có chiều dài bằng nhau và chiều dài lớn nhất có thể sau khi cắt.
An có thể:
- Cắt các miếng gỗ thành các đoạn có chiều dài nguyên.
- Không ghép các đoạn từ nhiều miếng gỗ lại với nhau.
Yêu cầu: Tìm chiều dài lớn nhất của một miếng gỗ có thể đạt được để tạo thành hàng rào gồm ~ K ~ miếng.
Input:
- Dòng đầu chứa hai số nguyên ~ N ~ và ~ K ~ (~ 1 \leq N \leq 10^5 ~, ~ 1 \leq K \leq 10^9 ~).
- Dòng thứ hai chứa ~ N ~ số nguyên ~ l_1, l_2, \ldots, l_N ~ (~ 1 \leq l_i \leq 10^9 ~): chiều dài của từng miếng gỗ.
Output:
- In ra chiều dài lớn nhất có thể đạt được. Nếu không thể cắt đủ ~ K ~ miếng, in ra ~ 0 ~.
Input:
3 4
15 10 8
Output:
7
Giải thích:
- Với ~ x = 7 ~:
- ~ \lfloor 15 / 7 \rfloor = 2 ~, ~ \lfloor 10 / 7 \rfloor = 1 ~, ~ \lfloor 8 / 7 \rfloor = 1 ~.
- Tổng ~ 2 + 1 + 1 = 4 ~, đủ ~ K ~ đoạn.
- Với ~ x = 8 ~:
- ~ \lfloor 15 / 8 \rfloor = 1 ~, ~ \lfloor 10 / 8 \rfloor = 1 ~, ~ \lfloor 8 / 8 \rfloor = 1 ~.
- Tổng ~ 1 + 1 + 1 = 3 ~, không đủ ~ K ~ đoạn.
- Kết quả tối đa là ~ x = 7 ~.
Bình luận
Gửi bài giải
Kotlin
PyPy
Điểm:
10,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
Tìm kiếm nhị phân
Ngôn ngữ cho phép
C
C++
Java
Pascal
Python
Scratch