聊天
题目描述
小A有\(n\)个联系人,联系人按{\(1,2,……,n\)}命名,在接下来的\(t\)单位时间内,每单位时间他将会进行一下操作中的一种:
add x将编号为\(x\)的联系人加入会话列表尾,若已加入会话列表,输出Error,反之输出done。top x将编号为\(x\)的联系人放入会话列表首,若原先不在会话列表,则输出Error并不执行该操作,反之输出done。delete x将编号为\(x\)的联系人删除会话列表,若原先不在会话列表,则输出Error并不执行该操作,反之输出done。erase n将会话列表第\(n\)名联系人删除会话列表,若会话列表人数小于\(n\)人,则输出Error并不执行该操作,反之输出done。up n d将会话列表第\(n\)名联系人上移\(d\)位,若会话列表人数小于\(n\)人,输出Error并不执行操作,若\(n\le d\),则将该联系人置顶。若操作执行成功,输出done。send n s向会话列表第\(n\)名联系人发送一条字符串\(s\),若会话列表人数少于\(n\),输出Error,反之输出donechat s向会话列表首发送一条字符串\(s\),若会话列表不存在联系人,则输出Error,反之输出donequery x m查询向\(x\)联系人发送的第\(m\)条消息,即使\(x\)联系人不在会话列表内,查询完毕后,将\(x\)联系人加入会话列表首并输出该消息,若向\(x\)联系人发送的消息不足\(m\)条,则输出Error。ask n m查询向会话列表第\(n\)名联系人发送的第\(m\)条消息,若会话列表人数少于\(n\)人或向该联系人发送的消息不足\(m\)条,输出Error,反之输出该条消息。
输入格式
输入共\(t+1\)行:
第一行共两个整数,\(n\)和\(t\)。
接下来\(t\)行,每行一种操作。
输出格式
输出共\(t+2\)行:
前\(t\)行,每行一个字符串,按照操作输出。
第\(t+1\)行,输出一个整数\(n\),代表会话列表人数
第\(t+2\)行,输出共\(n\)个整数,用空格间隔,代表从会话列表首至尾的联系人编号。
输入输出样例 #1
输入 #1
10 12
add 3
add 7
top 3
delete 7
send 1 abcde
chat qwerty
query 3 1
ask 1 1
add 5
erase 2
up 1 2
chat zxcvbnm
输出 #1
done
done
done
done
done
done
abcde
abcde
done
Error
done
done
1
3 5
说明/提示
对于 10% 的数据,保证 \(1 \le n \le 10\),\(1 \le t \le 100\),仅包含 add、delete、send、chat 四种基础操作,无复杂边界;
对于 30% 的数据,保证 \(1 \le n \le 100\),\(1 \le t \le 1000\),包含全部9种操作,无极端连续操作序列;
对于 50% 的数据,保证 \(1 \le n \le 1000\),\(1 \le t \le 5000\),包含全部操作,存在一定量的 top、up、query 列表修改类操作;
对于 100% 的数据,保证 \(1 \le n \le 10^4\),\(1 \le t \le 5 \times 10^4\),所有操作均可能出现,保证操作中涉及的联系人编号 \(x \in [1,n]\),位置参数 \(k\)、上移步数 \(d\)、消息序号 \(m\) 均为正整数。
输入输出样例 #2
输入 #2
10 100
add 5
send 1 aqchsmnk
add 1
send 6 xtjje
delete 10
chat pukjvv
send 6 sxwbost
chat cspjypv
send 1 egbxord
send 7 lbzvto
add 6
add 8
chat eaprwrb
chat bhfwymlq
add 5
add 6
delete 8
delete 8
add 5
chat xxevqfkv
chat yigpvzzx
delete 5
add 2
send 8 mnegfbq
delete 8
delete 5
send 5 axegsy
add 8
chat mlsnx
add 8
add 2
chat iskga
add 2
chat zaqeang
chat pjyrxndm
send 9 gxfotol
chat czsxw
send 8 ptsqdisi
add 7
chat hmvpk
add 6
chat aqfqvgux
chat nbemfdpu
delete 3
chat mlkra
add 6
send 3 tzjicq
chat hhazxvkl
chat gzpkjm
delete 7
delete 8
chat joknejd
send 6 tbetxr
chat oqzxw
delete 10
chat dihbhvys
delete 7
chat lqjof
delete 1
add 10
add 4
chat ghawzoxx
delete 10
delete 2
add 8
send 3 cyinvlw
chat nkzmw
delete 9
delete 9
add 10
add 4
add 2
add 2
delete 4
send 8 cwhyyzb
chat cwbahbtr
chat sdhaqeoo
send 2 wxjme
chat kzqfye
add 7
chat natlnlxg
delete 6
delete 5
send 2 hzynfh
add 10
send 2 iuvlq
delete 7
chat wfrrqzwl
send 7 hlkzkr
delete 8
send 4 xzjoaop
send 6 batvnzm
delete 6
delete 9
chat smepqj
chat dgjatkg
chat ohydexq
send 3 bpyjw
chat eisyig
delete 8
输出 #2
done
done
done
Error
Error
done
Error
done
done
Error
done
done
done
done
Error
Error
done
Error
Error
done
done
done
done
Error
Error
Error
Error
done
done
Error
Error
done
Error
done
done
Error
done
Error
done
done
Error
done
done
Error
done
Error
done
done
done
done
done
done
Error
done
Error
done
Error
done
done
done
done
done
done
done
done
done
done
Error
Error
done
Error
done
Error
done
Error
done
done
done
done
done
done
done
Error
done
Error
done
done
done
Error
done
Error
Error
Error
Error
done
done
done
Error
done
Error
2
10 2
信息
- ID
- 1002
- 难度
- 9
- 分类
- (无)
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 通过率
- 100%
- 上传者