Kệ sách
Đề bài
Mô tả
Bạn có một kệ sách và muốn đặt các cuốn sách lên đó. Bạn cần xử lý truy vấn thuộc ba loại:
L id— đặt cuốn sách có chỉ số vào bên trái của cuốn sách ngoài cùng bên trái hiện có.R id— đặt cuốn sách có chỉ số vào bên phải của cuốn sách ngoài cùng bên phải hiện có.? id— tính số cuốn sách tối thiểu cần lấy ra khỏi kệ (từ đầu bên trái hoặc đầu bên phải) sao cho cuốn sách có chỉ số trở thành cuốn ngoài cùng bên trái hoặc ngoài cùng bên phải.
Cuốn sách đầu tiên được đặt lên kệ có thể ở vị trí bất kỳ (không quan trọng). Với mỗi truy vấn loại 3, đảm bảo cuốn sách đã có trên kệ. Các cuốn sách không được đặt trùng lặp, nên không lặp lại trong các truy vấn loại 1 và loại 2.
Lưu ý: sau khi trả lời một truy vấn loại 3, tất cả các cuốn sách vẫn nằm nguyên trên kệ và thứ tự tương đối giữa chúng không thay đổi (truy vấn loại 3 chỉ là câu hỏi giả định, không thực sự lấy sách ra).
Dữ liệu vào
- Dòng đầu chứa số nguyên là số truy vấn.
- dòng tiếp theo, mỗi dòng chứa một truy vấn theo đúng định dạng nêu trên.
Dữ liệu ra
Với mỗi truy vấn loại 3, in ra một dòng chứa đáp án tương ứng, theo thứ tự các truy vấn xuất hiện trong dữ liệu vào.
Ràng buộc
- Dữ liệu luôn hợp lệ: với truy vấn loại 3, cuốn sách chắc chắn đã có trên kệ; với truy vấn loại 1 và loại 2, cuốn sách chưa từng được đặt trước đó.
- Đảm bảo có ít nhất một truy vấn loại 3.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 8 L 1 R 2 R 3 ? 2 L 4 ? 1 L 5 ? 1 |
1 1 2 |
Sau ba truy vấn đầu, kệ là [1, 2, 3]. Với ? 2, cuốn 2 ở giữa, cần lấy tối thiểu 1 cuốn (bỏ cuốn 3 từ bên phải hoặc cuốn 1 từ bên trái). Sau L 4, kệ là [4, 1, 2, 3], với ? 1 cần lấy 1 cuốn (bỏ cuốn 4). Sau L 5, kệ là [5, 4, 1, 2, 3], với ? 1 cần lấy 2 cuốn từ bên trái. |
| 10 L 100 R 100000 R 123 L 101 ? 123 L 10 R 115 ? 100 R 110 ? 115 |
0 2 1 |
Trước ? 123, kệ là [101, 100, 100000, 123], cuốn 123 đã ở ngoài cùng bên phải nên đáp án 0. Trước ? 100, kệ là [10, 101, 100, 100000, 123, 115], cuốn 100 cách bên trái 2 vị trí. Trước ? 115, kệ là [10, 101, 100, 100000, 123, 115, 110], cuốn 115 cách bên phải 1 vị trí. |
Bình luận