#P8045. [COCI 2015/2016 #4] HAN

[COCI 2015/2016 #4] HAN

Description

具体地,警察在接下来将会发出 qq 次命令,每次命令为以下两种命令中的一种:

  • SMJER n\bf SMJER~n:在 Dominik 说完第 nn 个字母之后,他必须开始按照与当前方向相反的方向念字母。
  • UPIT n x\bf UPIT~n~x:Dominik 需要回答在他念的前 nn 个字母中,字母 xx 出现了多少次。

你需要对于每次 UPIT n x\bf UPIT~n~x 命令输出答案。

Input Format

第一行一个整数 qq,表示警察发出的命令数。
随后 qq 行,描述 qq 次命令。每行先输入一个字符串 ss 和一个整数 nn。如果 ssUPIT\bf UPIT,则在输入完一个整数 nn 之后还需要输入一个字符 xx

数据保证对于所有 qq 次命令,nn 严格递增。形式化地说,i[1,q)\forall i\in [1,q)ni<ni+1n_i<n_{i+1}

Output Format

对于每次 UPIT n x\bf UPIT~n~x 命令,输出一行一个整数,表示在 Dominik 说的前 nn 个字母中,字符 xx 出现的次数。

5
UPIT 1 b
UPIT 3 b
SMJER 4
UPIT 7 a
UPIT 10 z
0
1
2
1
5
SMJER 1
SMJER 2
SMJER 3
UPIT 5 a
UPIT 7 w
2
1
4
UPIT 100 a
UPIT 200 c
UPIT 300 a
UPIT 400 b
4
8
12
16

Hint

【样例 1 解释】

Dominik 说的前 1010 个字母依次是:a\texttt{a}b\texttt{b}c\texttt{c}d\texttt{d}c\texttt{c}b\texttt{b}a\texttt{a}z\texttt{z}y\texttt{y}x\texttt{x}

【样例 2 解释】

Dominik 说的前 77 个字母依次是:a\texttt{a}z\texttt{z}a\texttt{a}z\texttt{z}y\texttt{y}x\texttt{x}w\texttt{w}

【数据范围】

对于 40%40\% 的数据,保证 n1000n\leqslant 1000
对于 60%60\% 的数据,保证 n105n\leqslant 10^5
对于所有数据,1q1051\leqslant q\leqslant 10^51n1091\leqslant n\leqslant 10^9xx 仅包含小写字母。

【题目来源】

本题来源自 COCI 2015-2016 CONTEST 4 T2 HAN,按照原题数据配置,满分 8080 分。

Eason_AC 翻译整理提供。