G - 一点更新・区間最小値 Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MiB

配点: 100

問題文

長さ N の整数列 A = (a_0, a_1, \ldots, a_{N-1}) があります。

あなたは今からこの数列について Q 個のクエリを処理します。i 番目のクエリでは、T_i, X_i, Y_i が与えられるので、以下の処理してください。

  • T_i = 1 のとき: a_{X_i}Y_i で置き換える
  • T_i = 2 のとき: \min \left( a_{X_i}, a_{X_i + 1}, \ldots , a_{Y_i - 1} \right) を出力する

入力

入力は以下の形式で標準入力から与えられます。

N Q
a_0 a_1 \cdots a_{N-1}
T_1 X_1 Y_1
\vdots
T_Q X_Q Y_Q

出力

T_i = 2 であるような各クエリについて、答えを 1 行に 1 つずつ、順に出力してください。

制約

  • 1 \leq N \leq 200{,}000
  • 1 \leq Q \leq 200{,}000
  • 1 \leq a_i \leq 10^{9}
  • T_i1 または 2
  • T_i = 1 ならば 0 \leq X_i < N かつ 1 \leq Y_i \leq 10^{9}
  • T_i = 2 ならば 0 \leq X_i < Y_i \leq N


入力例

6 4
1 6 3 7 2 5
2 1 5
1 4 8
2 1 5
2 3 6

出力例

2
3
5

  • 1 個目のクエリでは、\min(a_1, a_2, a_3, a_4) = \min(6, 3, 7, 2) = 2 を出力します。
  • 2 個目のクエリでは、a_48 に書き換えられ、A = (1, 6, 3, 7, 8, 5) という数列に変化します。
  • 3 個目のクエリでは、\min(a_1, a_2, a_3, a_4) = \min(6, 3, 7, 8) = 3 を出力します。
  • 4 個目のクエリでは、\min(a_3, a_4, a_5) = \min(7, 8, 5) = 5 を出力します。