D. Quản lý thư viện
Mô tả bài toán
Thư viện trường THCS X có N cuốn sách, mỗi cuốn sách có một mã số nguyên duy nhất. Các mã số này đã được các thủ thư sắp xếp theo thứ tự tăng dần để dễ quản lý. Ngày hôm nay, thư viện nhập về thêm M cuốn sách mới. Với mỗi cuốn sách mới có mã số X, thủ thư cần biết nhanh: Trong kho đã có cuốn sách nào có mã số nhỏ hơn hoặc bằng X chưa? Nếu có, hãy chỉ ra mã số lớn nhất trong số các mã đó. Nếu không tìm thấy mã số nào nhỏ hơn hoặc bằng X, hãy thông báo -1.
Dữ liệu vào (Dữ liệu nhập)
- Dòng 1: Hai số nguyên N và M (1 <= N, M <= 10^5). - Dòng 2: N số nguyên là mã số các cuốn sách hiện có (đã sắp xếp tăng dần). - Dòng 3: M số nguyên là mã số của M cuốn sách mới cần kiểm tra.
Dữ liệu ra (Kết quả)
Một dòng duy nhất chứa M số nguyên, mỗi số là câu trả lời cho từng cuốn sách mới (cách nhau bởi dấu cách).
Ví dụ
Input: 5 3 2 5 8 10 15 7 12 1 Output: 5 10 -1
Ghi chú (Ràng buộc)
Với N, M lên đến 10^5, thuật toán cần có độ phức tạp O(M log N) để vượt qua các bộ kiểm thử giới hạn thời gian.
Comments