Dima và các cấu trúc
Đề bài
Mô tả
Bạn có ba cấu trúc dữ liệu: một ngăn xếp (stack), một hàng đợi (queue) và một hàng đợi hai đầu (deck). Ban đầu cả ba đều rỗng.
Có lệnh được đưa ra lần lượt, mỗi lệnh thuộc một trong hai loại:
Thêm một số vào một trong các cấu trúc. Bạn được chọn đúng một trong bốn cách:
- pushStack: thêm vào cuối ngăn xếp;
- pushQueue: thêm vào cuối hàng đợi;
- pushFront: thêm vào đầu deck;
- pushBack: thêm vào cuối deck.
Lấy ra: bạn thực hiện lấy phần tử từ nhiều nhất ba cấu trúc khác nhau, cộng dồn các số lấy được vào tổng điểm, rồi làm rỗng cả ba cấu trúc. Mỗi cách lấy như sau:
- popStack: lấy phần tử ở cuối ngăn xếp;
- popQueue: lấy phần tử ở đầu hàng đợi;
- popFront: lấy phần tử ở đầu deck;
- popBack: lấy phần tử ở cuối deck.
Trong một lệnh lấy ra, bạn không được lấy từ một cấu trúc rỗng, và không được lấy hai lần từ cùng một cấu trúc. Lưu ý popFront và popBack đều thao tác trên deck, nên trong cùng một lệnh lấy ra chỉ được dùng tối đa một trong hai.
Biết trước toàn bộ dãy lệnh, hãy đưa ra dãy hành động sao cho tổng điểm lấy được là lớn nhất. Nếu có nhiều phương án cùng đạt tổng lớn nhất, in ra phương án nào cũng được.
Dữ liệu vào
- Dòng đầu chứa số nguyên : số lệnh.
- dòng tiếp theo, mỗi dòng một số nguyên mô tả một lệnh:
- số (): lệnh thêm số ;
- số : lệnh lấy ra.
Dữ liệu ra
In ra dòng, mỗi dòng ứng với một lệnh vào theo thứ tự:
- Với lệnh thêm: in đúng một trong bốn từ pushStack, pushQueue, pushFront, pushBack.
- Với lệnh lấy ra: in số nguyên () là số phần tử lấy ra, sau đó là từ (cách nhau bởi dấu cách), mỗi từ thuộc popStack, popQueue, popFront, popBack.
Ràng buộc
- Mỗi lệnh là hoặc một số nguyên với .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 10 0 1 0 1 2 0 1 2 3 0 |
0 pushStack 1 popStack pushQueue pushStack 2 popStack popQueue pushFront pushQueue pushStack 3 popStack popQueue popFront |
Bốn lệnh lấy ra thu về , , , ; tổng . Lần lấy đầu tiên các cấu trúc rỗng nên . |
| 4 1 2 3 0 |
pushFront pushQueue pushStack 3 popStack popQueue popFront |
Thêm vào ba cấu trúc khác nhau rồi lấy cả ba, tổng . |
Bình luận