AtCoder Beginner Contest 157
E
Simple String Queries
AtCoder
⌀ 1443
原题
← DF →
翻译中…

Problem Statement

翻译中…

You are given a string $S$ of length $N$ consisting of lowercase English letters.

翻译中…

Process $Q$ queries of the following two types:

翻译中…
  • Type $1$: change the $i_q$-th character of $S$ to $c_q$. (Do nothing if the $i_q$-th character is already $c_q$.)
  • Type $2$: answer the number of different characters occurring in the substring of $S$ between the $l_q$-th and $r_q$-th characters (inclusive).
翻译中…

Constraints

翻译中…
  • $N$, $Q$, $i_q$, $l_q$, and $r_q$ are integers.
  • $S$ is a string consisting of lowercase English letters.
  • $c_q$ is a lowercase English letter.
  • $1 \leq N \leq 500000$
  • $1 \leq Q \leq 20000$
  • $|S| = N$
  • $1 \leq i_q \leq N$
  • $1 \leq l_q \leq r_q \leq N$
  • There is at least one query of type $2$ in each testcase.
翻译中…

Input

翻译中…

Input is given from Standard Input in the following format:

翻译中…

N
S
Q
Query_1
\vdots
Query_Q

翻译中…

Here, $Query_i$ in the $4$-th through $(Q+3)$-th lines is one of the following:

翻译中…

1 i_q c_q

翻译中…

2 l_q r_q

翻译中…

Output

翻译中…

For each query of type $2$, print a line containing the answer.

翻译中…

样例

Input #1
7
abcdbbd
6
2 3 6
1 5 z
2 1 1
1 4 a
1 7 d
2 1 7
Output #1
3
1
5
In the first query, `cdbb` contains three kinds of letters: `b` , `c` , and `d`, so we print $3$. In the second query, $S$ is modified to `abcdzbd`. In the third query, `a` contains one kind of letter: `a`, so we print $1$. In the fourth query, $S$ is modified to `abcazbd`. In the fifth query, $S$ does not change and is still `abcazbd`. In the sixth query, `abcazbd` contains five kinds of letters: `a`, `b`, `c`, `d`, and `z`, so we print $5$.
题目信息
题号
abc157_e
时间限制
2 s
内存限制
1024 MB

题面与样例版权归 AtCoder 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。