Pipe có sức chứa (capacity) C byte. Khi ghi k byte mà buffer không còn đủ chỗ, chỉ phần vừa khít được ghi vào, phần dư bị bỏ (mô phỏng non-blocking, ghi tối đa có thể).
Cho capacity C và dãy thao tác:
W k — thử ghi k byte; chỉ ghi được min(k, chỗ trống) byte.R k — đọc ra min(k, byte hiện có) byte.In số byte còn lại trong pipe sau khi xử lý hết.
C=5, W 4, W 4 → lần đầu ghi 4 (buffer=4), lần hai chỉ còn 1 chỗ nên ghi 1 (buffer=5).
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.
Một số nguyên: số byte còn trong pipe.
Ví dụ:
Đầu vào:
5 2
W 4
W 4
Đầu ra:
5
Giải thích:
Đang tải editor...