Hang doi hai dau

Xem dưới dạng PDF

Gửi bài giải


Điểm: 10
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
đầu vào: stdin
Đầu ra: stdout

Tác giả:
Kiểu bài tập

Hãy cài đặt một deque (hàng đợi hai đầu) sử dụng mảng vòng (circular array). Deque hỗ trợ các thao tác:

  • push_front x: thêm x vào đầu deque.
  • push_back x: thêm x vào cuối deque.
  • pop_front: xoá và in giá trị phần tử đầu. Nếu rỗng, in -1.
  • pop_back: xoá và in giá trị phần tử cuối. Nếu rỗng, in -1.
  • front: in giá trị phần tử đầu. Nếu rỗng, in -1.
  • back: in giá trị phần tử cuối. Nếu rỗng, in -1.
  • size: in số lượng phần tử hiện tại.

Deque dùng mảng vòng (circular buffer) có kích thước cố định MAX = 100000.

Đầu vào
  • Dòng đầu tiên chứa số nguyên Q (1 ≤ Q ≤ 10^5).
  • Q dòng tiếp theo, mỗi dòng là một thao tác.
Đầu ra

Với mỗi thao tác pop_front, pop_back, front, back, size, in kết quả trên một dòng.

Ví dụ
Input:
12
push_back 1
push_back 2
push_front 3
front
back
pop_front
pop_back
push_front 4
push_back 5
front
pop_front
size

Output:
3
2
3
1
4
4
2

Nhận xét

Không có ý kiến tại thời điểm này.