Xếp hộp
Đề bài
Mô tả
Cho hình chữ nhật, mỗi hình có chiều cao bằng . Chiều rộng của mỗi hình chữ nhật là một lũy thừa của (nghĩa là có thể biểu diễn dưới dạng với là số nguyên không âm).
Bạn được cho một hộp hai chiều có chiều rộng . Lưu ý không nhất thiết là lũy thừa của , nhưng đảm bảo không nhỏ hơn chiều rộng của hình chữ nhật lớn nhất.
Hãy tìm chiều cao nhỏ nhất của hộp sao cho có thể xếp tất cả hình chữ nhật vào trong. Cho phép để khoảng trống trong hộp sau khi xếp.
Không được phép xoay các hình chữ nhật. Hai hình chữ nhật khác nhau không được phép giao nhau (diện tích giao bằng ).
Dữ liệu vào
- Dòng đầu chứa một số nguyên — số bộ dữ liệu.
- Với mỗi bộ:
- Dòng đầu chứa hai số nguyên và .
- Dòng thứ hai chứa số nguyên — chiều rộng của các hình chữ nhật. Mỗi là một lũy thừa của .
Dữ liệu ra
In ra dòng, mỗi dòng là chiều cao nhỏ nhất của hộp tương ứng với mỗi bộ dữ liệu.
Ràng buộc
- và là lũy thừa của
- Tổng trên tất cả các bộ dữ liệu không vượt quá
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 2 5 16 1 2 8 4 8 6 10 2 8 8 2 2 8 |
2 3 |
Bộ 1: hộp rộng , có thể xếp trên một hàng (tổng ) và trên một hàng (tổng ), cần hàng. Bộ 2: hộp rộng , xếp trên mỗi hàng cần hàng. |
| 1 5 4 4 4 4 4 4 |
5 | Mỗi hình rộng chiếm trọn một hàng rộng , cần hàng. |
Bình luận