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

Time Limit: 2 sec / Memory Limit: 1024 MB

配点: 100100

問題文

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

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

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

入力

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

NN QQ
a0a_0 a1a_1 \cdots aN1a_{N-1}
T1T_1 X1X_1 Y1Y_1
\vdots
TQT_Q XQX_Q YQY_Q

出力

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

制約

  • 1N200,0001 \leq N \leq 200{,}000
  • 1Q200,0001 \leq Q \leq 200{,}000
  • 1ai1091 \leq a_i \leq 10^{9}
  • TiT_i11 または 22
  • Ti=1T_i = 1 ならば 0Xi<N0 \leq X_i < N かつ 1Yi1091 \leq Y_i \leq 10^{9}
  • Ti=2T_i = 2 ならば 0Xi<YiN0 \leq X_i < Y_i \leq N


入力例 Copy

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

出力例 Copy

Copy
2
3
5

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


2025-03-30 (Sun)
23:02:58 +00:00