题号:NC20880
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld
题目描述
”我愿意舍弃一切,以想念你,终此一生。“
”到后来,只能将记忆拼凑。“ ——QAQ
小可爱刚刚把KR的序列切开了,但是她还没有玩够,于是就又双叒叕打乱了佳佳刚刚买回来的序列。
但是还好,佳佳通过监控记录下来了小可爱的打乱方式,于是把小可爱送回家之后,现在佳佳要还原这个序列。
佳佳需要维护一个长度为n的序列,小可爱只用了以下两种操作:
a.将最后一个数挪到第一位
b.将序列第3位挪到第一位
你需要给出最后的序列
输入描述:
第一行两个数
n,m为序列长度,不同的操作“次数”
接下来m行,每行一个由数字+字母组成的字符串
保证所有的字符串只有一个字母,字符集S为S={'a','b'}并且只会在字符串最后一位出现。
字符串表示的是,要做的操作次数,操作类型。
比如“3a”就是你这一步要重复3次a操作,
"4b"就是这一步要重复操作4次b操作。
输出描述:
一行用空格隔开的n个数,表示所有操作做完之后的序列
示例1
说明
第一次做一次a操作 变为 4 1 2 3
第二次连着做两次b操作 变为1 2 4 3
备注:
20pts:n<10,m<100
40pts:n<100,m<1000
60pts:n<1000,m<2000
80pts:n<2000,m<5000
对于所有数据
4<=n<=2000
m<=100000
对于每次操作的操作数<=998244353
保证n>3