AT_abc314_d [ABC314D] LOWER
Description
[problemUrl]: https://atcoder.jp/contests/abc314/tasks/abc314_d
英大文字および英小文字からなる長さ $ N $ の文字列 $ S $ が与えられます。
これから、文字列 $ S $ に対して $ Q $ 回の操作を行います。 $ i $ 番目 $ (1\leq\ i\leq\ Q) $ の操作は整数 $ 2 $ つと文字 $ 1 $ つからなる組 $ (t\ _\ i,x\ _\ i,c\ _\ i) $ で表され、それぞれ次のような操作を表します。
- $ t\ _\ i=1 $ のとき、$ S $ の $ x\ _\ i $ 文字目を $ c\ _\ i $ に変更する。
- $ t\ _\ i=2 $ のとき、$ S $ に含まれる大文字すべてをそれぞれ小文字に変更する($ x\ _\ i,c\ _\ i $ は操作に使用しない)。
- $ t\ _\ i=3 $ のとき、$ S $ に含まれる小文字すべてをそれぞれ大文字に変更する($ x\ _\ i,c\ _\ i $ は操作に使用しない)。
$ Q $ 回の操作がすべて終わったあとの $ S $ を出力してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ S $ $ Q $ $ t\ _\ 1 $ $ x\ _\ 1 $ $ c\ _\ 1 $ $ t\ _\ 2 $ $ x\ _\ 2 $ $ c\ _\ 2 $ $ \vdots $ $ t\ _\ Q $ $ x\ _\ Q $ $ c\ _\ Q $
Output Format
答えを $ 1 $ 行で出力せよ。
Explanation/Hint
### 制約
- $ 1\leq\ N\leq5\times10^5 $
- $ S $ は英大文字および英小文字からなる長さ $ N $ の文字列
- $ 1\leq\ Q\leq5\times10^5 $
- $ 1\leq\ t\ _\ i\leq3\ (1\leq\ i\leq\ Q) $
- $ t\ _\ i=1 $ ならば $ 1\leq\ x\ _\ i\leq\ N\ (1\leq\ i\leq\ Q) $
- $ c\ _\ i $ は英大文字もしくは英小文字
- $ t\ _\ i\neq\ 1 $ ならば $ x\ _\ i=0 $ かつ $ c\ _\ i= $ `'a'`
- $ N,Q,t\ _\ i,x\ _\ i $ はすべて整数
### Sample Explanation 1
はじめ、文字列 $ S $ は `AtCoder` です。 - $ 1 $ 番目の操作では、$ 4 $ 文字目を `i` に変更します。変更後の $ S $ は `AtCider` です。 - $ 2 $ 番目の操作では、すべての小文字を大文字に変更します。変更後の $ S $ は `ATCIDER` です。 - $ 3 $ 番目の操作では、$ 5 $ 文字目を `b` に変更します。変更後の $ S $ は `ATCIbER` です。 - $ 4 $ 番目の操作では、すべての大文字を小文字に変更します。変更後の $ S $ は `atciber` です。 - $ 5 $ 番目の操作では、$ 4 $ 文字目を `Y` に変更します。変更後の $ S $ は `atcYber` です。 すべての操作が終わったあとの $ S $ は `atcYber` なので、`atcYber` と出力してください。