Segment Tree 연습문제 1

parent link: Segment Tree


길이가 n인 수열 \(a_0, a_1, \cdots, a_{n-1}\) \((0 ≤ a_i ≤ 10^9)\) 에서 아래 두 가지 쿼리를 처리하는 프로그램을 작성하라

0 i x    :    ai 를 x로 바꾼다. (\(0 ≤ i ≤ n - 1, 0 ≤ x ≤ 10^9\))

1 l r    :    \(\max(a_l, a_{l+1}, \cdots , a_{r-1}) - \min(a_l, a_{l+1}, \cdots , a_{r-1})\)를 출력한다. (0 ≤ l < r ≤ n)

[입력]
첫 번째 줄에 테스트 케이스의 수 T 가 주어진다.

각 테스트 케이스의 첫 번째 줄에는 배열의 길이 n(1 ≤ n ≤ \(10^5\))과 쿼리의 개수 q(1 ≤ q ≤ \(10^5\))가 주어진다.
두 번째 줄에는 배열 a가 주어진다.
세 번째 줄부터 q개 줄에 걸쳐 쿼리가 주어진다.

[출력]
각 테스트 케이스마다 1번 쿼리의 결과를 공백으로 구분하여 출력한다.

입력

2  
5 5  
1 2 3 4 5  
1 0 5  
1 1 4  
0 2 9  
1 0 5  
1 1 4  
3 4  
0 5 10  
1 0 3  
0 0 5  
0 2 5  
1 0 3

출력

#1 4 2 8 7  
#2 10 0