Ring buffer kích thước C dùng mảng vòng với hai chỉ số head (đọc) và tail (ghi), khởi tạo head=tail=0, số phần tử count=0.
W x — nếu chưa đầy (count < C): ghi vào vị trí tail, rồi tail=(tail+1)%C, count+=1. Nếu đầy: bỏ qua.R — nếu chưa rỗng: đọc vị trí head, rồi head=(head+1)%C, count-=1. Nếu rỗng: bỏ qua.In ba số sau khi xử lý hết: head, tail, count.
C=3: W a,W b,R,W c → tail đi 0→1→2, head 0→1, count: 1,2,1,2 ⇒ head=1 tail=0 count=2.
Dòng đầu: C n. n dòng: W x hoặc R.
1 ≤ C ≤ 10^5, 1 ≤ n ≤ 2000.
Ba số nguyên cách nhau dấu cách: head, tail, count.
Ví dụ:
Đầu vào:
3 4
W a
W b
R
W c
Đầu ra:
1 0 2
Giải thích:
Đang tải editor...