AT_past202303_o 区間ソートクエリ
Description
$ 0 $ 以上 $ 10 $ 以下の整数からなる長さ $ N $ の数列 $ A = (A_1, A_2, \dots, A_N) $ があります。
以下に説明するクエリを与えられる順に $ Q $ 個処理してください。
各クエリでは 3 つの整数 $ C, L, R $ が与えられます。 $ C $ の値に応じて次の処理を行ってください。
- $ C = 1 $ のとき : $ A_L, A_{L+1}, \dots, A_R $ を値が昇順に並ぶようにソートする。
- $ C = 2 $ のとき : $ A_L, A_{L+1}, \dots, A_R $ を値が降順に並ぶようにソートする。
- $ C = 3 $ のとき : $ \displaystyle \sum_{i=L}^R A_i $ を出力する。
Input Format
入力は以下の形式で標準入力から与えられる。ここで $ \text{Query}_i $ は $ i $ 番目のクエリを意味する。
> $ N $ $ Q $ $ A_1 $ $ A_2 $ $ \dots $ $ A_N $ $ \text{Query}_1 $ $ \text{Query}_2 $ $ \vdots $ $ \text{Query}_Q $
クエリは次の形式で与えられる。
> $ C $ $ L $ $ R $
Output Format
$ C = 3 $ であるクエリの個数を $ T $ として、 $ T $ 行出力せよ。
$ i $ 行目 $ (1 \leq i \leq T) $ には $ i $ 番目の $ C = 3 $ であるクエリに対する答えを出力せよ。
Explanation/Hint
### Sample Explanation 1
はじめ、 $ A = (1, 0, 8, 2, 10) $ です。
1 番目のクエリの答えは $ 0 + 8 + 2 = 10 $ です。
2 番目のクエリを処理した後の $ A $ は $ (0, 1, 2, 8, 10) $ です。
3 番目のクエリの答えは $ 1 + 2 + 8 = 11 $ です。
4 番目のクエリを処理した後の $ A $ は $ (0, 1, 10, 8, 2) $ です。
5 番目のクエリの答えは $ 1 + 10 + 8 = 19 $ です。
### Constraints
- $ 1 \leq N \leq 5 \times 10^5 $
- $ 1 \leq Q \leq 2 \times 10^4 $
- $ 0 \leq A_i \leq 10 $
- $ 1 \leq C \leq 3 $
- $ 1 \leq L \leq R \leq N $
- 入力される値はすべて整数