Submission details
Task:Dynamic Range Minimum Queries
Sender:aalto26dh_036
Submission time:2026-09-18 16:57:09 +0300
Language:Python3 (PyPy3)
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.04 sdetails
#2--details

Code

import sys 

input = sys.stdin.read().split()
data = list(map(int,input))
n = data[0]
q = data[1]
array = data[2:n+2]
querries = []



class SegmentTree : 
    def __init__(self, arr):
        self.arr = arr 
        self.tree = [None] *(4*len(arr))
        self.build(0,0,len(arr)-1)

    def build(self,node,start,end):
        if end == start : 
            self.tree[node] = self.arr[start]
        else : 
            mid = (start+end)//2
            self.build(2*node +1, start, mid)
            self.build(2*node +2, mid+1, end)
            self.tree[node] = min(self.tree[2*node +1], self.tree[2*node +2])

    def update(self, node ,start, end, idx ,value):
        if start == end : 
            self.arr[idx] = value
            self.tree[node] = value
        else : 
            mid = (start + end)//2
            if start <= idx <= mid : 
                self.update(2*node+1, start, mid, idx ,value)
            else : 
                self.update(2*node +2, mid +1, end,     idx, value)
            self.tree[node] = min(self.tree[2*node +1], self.tree[2*node +2])


    def query (self, node, start, end, left, rigth) : 
        if rigth < start or left > end : 
            return float('inf')
        if left <= start and rigth >= end : 
            return self.tree[node]
        mid = (start+end)//2
        return min(self.query(2*node +1,start, mid, left, rigth), self.query(2*node +2, mid +1, end, left, rigth))

tree = SegmentTree(array)
i = n+2

for _ in range(q) : 
    if data[i] == 1 :
        tree.update(0,0,n-1,data[i+1]-1, data[i+2])
    else : 
        print(tree.query(0,0,n-1,data[i+1]-1,data[i+2]-1))
    i = i+3

Test details

Test 1

Verdict: ACCEPTED

input
8 80
7 6 4 6 2 9 4 8
2 1 1
2 1 2
2 1 3
...

correct output
7
6
4
4
2
...

user output
7
6
4
4
2
...

Test 2

Verdict:

input
200000 200000
398739055 65343131 699208332 3...

correct output
28609
129890
20378
20378
311522
...

user output
(empty)