AT_abc442_d [ABC442D] Swap and Range Sum
Description
長さ $ N $ の数列 $ A=(A_1,A_2,\dots,A_N) $ が与えられます。
$ Q $ 個のクエリが与えられるので、順に処理してください。 各クエリは以下のいずれかの形式です。
- `1 x` : $ A_x $ と $ A_{x+1} $ の値を入れ替える。
- `2 l r` : $ \displaystyle \sum_{l\leq i\leq r} A_i $ の値を求める。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ Q $ $ A_1 $ $ A_2 $ $ \dots $ $ A_N $ $ \text{query}_1 $ $ \text{query}_2 $ $ \vdots $ $ \text{query}_Q $
ここで、 $ \text{query}_i $ は $ i $ 番目のクエリを表し、以下のいずれかの形式で与えられる。
> $ 1 $ $ x $
> $ 2 $ $ l $ $ r $
Output Format
$ 2 $ 種類目のクエリの個数を $ q $ として、 $ q $ 行出力せよ。 $ i $ 行目 $ (1\leq i \leq q) $ には、 $ 2 $ 種類目のクエリのうち $ i $ 個目のものに対する答えを出力せよ。
Explanation/Hint
### Sample Explanation 1
- $ 1 $ 番目のクエリでは、 $ A_2 $ と $ A_3 $ の値を入れ替えます。これにより、 $ A=(2,1,7,8) $ になります。
- $ 2 $ 番目のクエリでは、 $ A_1+A_2 $ の値を求めます。答えは $ 2+1=3 $ です。
- $ 3 $ 番目のクエリでは、 $ A_1 $ と $ A_2 $ の値を入れ替えます。これにより、 $ A=(1,2,7,8) $ になります。
- $ 4 $ 番目のクエリでは、 $ A_2+A_3+A_4 $ の値を求めます。答えは $ 2+7+8=17 $ です。
### Constraints
- $ 2\leq N \leq 2\times 10^5 $
- $ 1\leq Q \leq 5\times 10^5 $
- $ 1\leq A_i \leq 10^4 $
- $ 1 $ 種類目のクエリについて、 $ 1\leq x \leq N-1 $
- $ 2 $ 種類目のクエリについて、 $ 1\leq l\leq r \leq N $
- 入力は全て整数