AT_abc432_e [ABC432E] Clamp

Description

長さ $ N $ の整数列 $ A=(A_1, A_2, \dots, A_N) $ が与えられます。 $ Q $ 個のクエリが与えられるので、順に処理してください。 各クエリは以下のいずれかの形式です。 - `1 x y` : $ A_x $ の値を $ y $ に変更する。 - `2 l r` : $ \displaystyle \sum_{1\leq i\leq N} \max(l, \min(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\ (1\leq i\leq Q) $ は $ i $ 番目のクエリを表し、以下のいずれかの形式で与えられる。 > $ 1 $ $ x $ $ y $ > $ 2 $ $ l $ $ r $

Output Format

$ 2 $ 種類目のクエリの個数を $ K $ として、 $ K $ 行出力せよ。 $ i $ 行目 ( $ 1\leq i \leq K $ ) には、 $ 2 $ 種類目のクエリのうち $ i $ 個目のものに対する答えを出力せよ。

Explanation/Hint

### Sample Explanation 1 はじめ、 $ A=(4,3,2) $ です。 - $ 1 $ 番目のクエリ: $ A_1 $ の値を $ 7 $ に変更します。 $ A=(7,3,2) $ となります。 - $ 2 $ 番目のクエリ: $ \max(3, \min(5, 7))+\max(3, \min(5, 3))+\max(3, \min(5, 2))=5+3+3=11 $ を出力します。 - $ 3 $ 番目のクエリ: $ A_2 $ の値を $ 0 $ に変更します。 $ A=(7,0,2) $ となります。 - $ 4 $ 番目のクエリ: $ \max(4, \min(2, 7))+\max(4, \min(2, 0))+\max(4, \min(2, 2))=4+4+4=12 $ を出力します。 ### Constraints - $ 1\leq N \leq 5\times 10^5 $ - $ 1\leq Q \leq 2\times 10^5 $ - $ 0\leq A_i \leq 5\times 10^5 $ - $ 1 $ 種類目のクエリについて、 - $ 1\leq x\leq N $ - $ 0\leq y \leq 5\times 10^5 $ - $ 2 $ 種類目のクエリについて、 - $ 0\leq l,r \leq 5\times 10^5 $ - 入力は全て整数