题号:NC217418
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
小红最近迷上了一个好玩的音乐游戏——邦多利。她玩了一段时间之后,决定自己制作音游的谱面。于是,她打开了一个谱面制作器:
已知音符一共有2种类型:
1.点击(tap),用大写字母O表示。
2.滑动(也称粉键,flick),用大写字母X表示。
在同一时间如果有两个音符同时出现,需要用连接线把它们连接起来(除非他们是相邻的两个音符就不用连)。
小红输入了一些时间和该时间应出现的音符,请你将谱面打印出来。
ps:谱面一共有7个轨道可以用来放置音符!
输入描述:
第一行为两个正整数

和

,代表音符的数量以及歌曲的长度。(

)
接下来的

行,每行由一个字符串

和两个正整数

、

组成,分别代表音符的类型、音符出现的时间以及音符所在的音轨位置。(

,且

一定是tap或flick中的一个单词)
保证输入合法,即不会在同一时间的同一个音轨出现两个以上音符,也不会同一时间出现超过2个音符。
输出描述:
一共

行字符串,用来表示谱面。
谱面最底部有一行固定的字符串 +-------+ 表示谱面开始,这一行不计入歌曲总时间。
谱面开始以后,每一行表示一个时刻,一行中有 7 个字符(只可能是空格、大写字母O、大写字母X、短横线中的一种)被包含在两个竖线(|)之间表示当前时刻 7 个音轨的状态。
如果在同一时刻,相邻的两个音轨出现音符,则不需要再绘制短横线进行连接。
示例1
输入
复制
3 10
tap 2 1
tap 5 6
flick 2 4
输出
复制
| |
| |
| |
| |
| |
| O |
| |
| |
|O--X |
| |
+-------+
说明
请注意,由于这是一款下落式音游,时间自铺面底部到铺面顶部递增。