Pagini recente » Cod sursa (job #3031471) | Cod sursa (job #2738317) | Cod sursa (job #1721449) | Cod sursa (job #2711892) | Cod sursa (job #2909933)
from sys import stdin, stdout
# maximum segment tree
class SegmentTree:
def __init__(self, n):
self.n = n
self.tree = [0] * (2 * n)
def update(self, i, x):
i += self.n
self.tree[i] = x
while i > 1:
i //= 2
self.tree[i] = max(self.tree[i * 2], self.tree[i * 2 + 1])
def query(self, l, r):
l += self.n
r += self.n
res = 0
while l < r:
if l & 1:
res = max(res, self.tree[l])
l += 1
if r & 1:
r -= 1
res = max(res, self.tree[r])
l //= 2
r //= 2
return res
stdin = open("arbint.in", "r")
stdout = open("arbint.out", "w")
n, m = map(int, input().split())
a = list(map(int, input().split()))
st = SegmentTree(n)
for i in range(len(a)):
st.update(i, a[i])
for _ in range(m):
t, a, b = map(int, input().split())
if t == 1:
st.update(a - 1, b)
else:
print(st.query(a - 1, b - 1))