時間制限 : sec, メモリ制限 : KB
English / Japanese  

Range Minimum Query (RMQ)

数列 A = {a0, a1 ,...,an-1} に対し、次の2つの操作を行うプログラムを作成せよ。

  • update(i, x): aixに変更する。
  • find(s, t): as, as+1,..., atの最小値を出力する。

ただし、ai (i = 0, 1,...,n−1)は、231-1で初期化されているものとする。

入力

n q
com0 x0 y0
com1 x1 y1
...
comq−1 xq−1 yq−1

1行目にAの要素数n, クエリの数qが与えられる。続くq行にクエリが与えられる。comは、クエリの種類を示し、'0'がupdate(xi, yi)、'1'がfind(xi, yi)を表す。

出力

findクエリについて、最小値を1行に出力せよ。

制約

  • 1 ≤ n ≤ 100000
  • 1 ≤ q ≤ 100000
  • comiが0のとき、0 ≤ xi < n, 0 ≤ yi < 231−1
  • comiが1のとき、0 ≤ xi < n, 0 ≤ yi < n

入力例 1

3 5
0 0 1
0 1 2
0 2 3
1 0 2
1 1 2

出力例 1

1
2

入力例 2

1 3
1 0 0
0 0 5
1 0 0

出力例 2

2147483647
5