logo AlgoBeat OnlineJudge
登录 注册

#103682. [BZOJ 3682] Phorni

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:无测试数据
上传者: 匿名

题目描述

Phorni 是一个音之妖精,喜欢在你的打字机上跳舞。一天,阳光映射到刚刚淋浴过小雨的城市上时,Phorni 用魔法分裂出了许多个幻影,从 编号。她的每一个幻影都站在打出的字符串的一个位置上,多个幻影可以站在同一个位置上。每一个幻影代表的字符串即为从它站立位置开始的后缀,注意站立位置是从右往左数的。

让我们形式化地描述一下,若第 个幻影站在 上,那么它所代表的字符串就是 ,其中 是字符串 的长度。

每一次,她会选一段编号区间 ,而编号在这个区间中的幻影中,字典序最小的一个将跳一支舞,若有多个幻影字典序相同,选编号最小的。当然由于 Phorni 还会在打字机上跳动,所以有时字符串的前面会加入一个字符。当然这个打字机是带加密功能的。

字典序的比较: 将两个字符串逐位比较,长度不足的向后补 小于任何字符)。直到比出大小或判定相等。 比如

下标从 开始,保证涉及到的所有字符都为小写字母。

输入格式

输入共 行, 第一行为四个整数 ,分别代表幻影个数,操作次数,初始字符串长度。 时表示所有的字符都经过了加密。 第二行为初始字符串 。 第三行, 个数 ,意义如题面所示。 接下来 行,每行表示一个操作。

  1. I c:若 表示在字符串前面加入第 个小写字母,若 则表示加入第 个小写字母, 表示上一次的答案,初始为
  2. C x pos:表示第 个幻影跳到了从右向左数 的位置上。
  3. Q l r:表示询问

输出格式

对于每个询问操作输出一行,表示去跳舞的幻影编号。

样例

样例输入 #1

3 3 5 0
horni
3 2 5
I 15
C 1 6
Q 1 3

样例输出 #1

3

数据范围与提示

对于 的数据,

,保证 操作中 ;否则

操作中

操作中 操作数量约占总操作数量的 操作数量约各占总操作数量的

前2个操作后,三个幻影代表的后缀分别为

Shinrein祭 #1