#P4130. [NOI2007] 项链工厂

[NOI2007] 项链工厂

Description

一条项链包含 NN 个珠子,每个珠子的颜色是 1,2,,c1,2,…,c 中的一种。项链被固定在一个平板上,平板的某个位置被标记位置 11 ,按顺时针方向其他位置被记为 2,3,,N2,3,…,N

你将要编写的软件系统应支持如下命令:

Input Format

输入文件第一行包含两个整数 N,cN,c,分别表示项链包含的珠子数目以及颜色数目。

第二行包含 NN 个整数,x1,x2,,xnx_1,x_2,\cdots,x_n,表示从位置 11 到位置 NN 的珠子的颜色,1xic1 \le x_i \le c

第三行包含一个整数 QQ,表示命令数目。

接下来的 QQ 行每行一条命令,如上文所述。

Output Format

对于每一个 CCS 命令,应输出一个整数代表相应的答案。

5 3
1 2 3 2 1
4
C
R 2
P 5 5 2
CS 4 1
4
1

Hint

【数据规模和约定】

对于 60% 的数据,N1000N \le 1000Q1000Q \le 1000

对于 100% 的数据,N500000N \le 500000Q500000Q \le 500000c1000c \le 1000

关于旋转和翻转

注意旋转命令旋转“珠子”但不改变“位置”的编号,而反转命令始终以位置 1 为对称轴。例如当 N=10N=10 时,项链上的位置编号如图 1:

但注意此时项链上的位置编号仍然如图 1 所示,于是翻转的对称轴不变。因而再执行一次“F”命令时,项链的颜色如图 4 所示。

关于 CountSegment 命令

CS 命令表示查询一个“线段”中有多少个“部分”。尤其注意当查询的长度等于 NN 时,我们仍然将查询部分作为“线段”理解。

例如在图 4 所示的情况中,执行“CS 1 10”命令,查询从位置 1 开始到位置 10 结束的这个长度为 10 的线段中有多少个“部分”,于是得到返回值 3。与之形成对照的是,若执行“C”命令,返回值则为 2。