Pipe có sức chứa C byte. Khi tiến trình ghi W k, nó cố đẩy k byte vào pipe. Nếu pipe không đủ chỗ, phần dư không bị bỏ mà nằm chờ (tiến trình bị blocking); phần này được tích lũy vào "hàng chờ ghi".
Thao tác R k đọc min(k, byte trong pipe) byte ra. Mỗi lần sau một thao tác, nếu pipe còn chỗ trống và hàng chờ ghi còn byte, thì byte chờ được nạp vào pipe cho tới khi đầy hoặc hết byte chờ.
In hai số: số byte hiện trong pipe và số byte còn đang chờ ghi (chưa vào được pipe), sau khi xử lý hết.
C=5: W 8 → ghi 5 vào pipe, 3 chờ. R 2 → đọc 2 (pipe=3), nạp 2 byte chờ (pipe=5, chờ=1). Kết quả 5 1.
Dòng đầu: C n. n dòng tiếp theo: W k hoặc R k.
1 ≤ C ≤ 10^6, 1 ≤ n ≤ 1000, 1 ≤ k ≤ 10^6.
Hai số nguyên cách nhau bởi dấu cách: số byte trong pipe và số byte đang chờ ghi.
Ví dụ:
Đầu vào:
5 2
W 8
R 2
Đầu ra:
5 1
Giải thích:
Đang tải editor...