5312 - 循环缓冲区数据传输

题目描述

某通信系统使用固定大小为 5 的循环缓冲区来传输数据。当缓冲区满时,新数据会覆盖最旧的数据;当缓冲区空时,读取操作返回 - 1。请模拟这个循环缓冲区的工作过程,处理一系列写入和读取操作,并输出相应结果。

输入

输入包含多行,每行是一个操作指令: W n:表示将数据 n 写入缓冲区(0 ≤ n ≤ 1000) R:表示从缓冲区读取最早写入的数据 P:表示打印当前缓冲区的内容(从最早到最新) Q:表示结束输入

输出

对于每个操作,输出相应结果: 写入操作(W): 若缓冲区未满,输出 "Written: n" 若缓冲区已满,输出 "Buffer full, overwriting: n",并覆盖最早的数据 读取操作(R): 若缓冲区非空,输出 "Read: x" where x is the data value. 若缓冲区为空,输出 "Buffer empty, cannot read" 打印操作(P): 输出当前缓冲区的内容,格式为 "Contents: a b c d e"(无内容时输出 "Contents:") 结束操作(Q):不输出任何内容

样例

输入

W 1  
W 2  
W 3  
W 4  
W 5  
W 6  
P  
R  
R  
P  
W 7  
W 8  
P  
Q  

输出

Written: 1  
Written: 2  
Written: 3  
Written: 4  
Written: 5  
Buffer full, overwriting: 6  
Contents: 2 3 4 5 6
Read: 2  
Read: 3  
Contents: 4 5 6  
Written: 7  
Written: 8  
Contents:  4 5 6 7 8  
题目参数
时间限制 1 秒
内存限制 128 MB
提交次数 4
通过人数 3
金币数量 0 枚
难度 未标记


上一题 下一题