Submission details
Task:Dynamic Range Minimum Queries
Sender:luukwin
Submission time:2025-09-22 14:41:45 +0300
Language:Python3 (PyPy3)
Status:READY
Result:
Test results
testverdicttime
#10.04 sdetails
#20.12 sdetails

Code

n, q = [int(x) for x in input().split()]
N = 1 << (n-1).bit_length()
print(N)
array = [int(x) for x in input().split()]
minimums = [10**10 for _ in range(N)]
minimums.extend(array)


def BuildSparseTree():
    for i in range(N-1, 0, -1):
        minimums[i] = min(minimums[i*2], minimums[i*2+1])

BuildSparseTree()

output = []

for i in range(q):
    action, k, u = [int(x) for x in input().split()]
    if action == 1: 
        k = (k + N - 1) // 2
        minimums[k+N] = u
        while k > 0:
            minimums[k] = min(minimums[k*2], minimums[k*2+1])
            k = k // 2
    else: 
        s = 10**10
        k += N - 1
        u += N
        while k < u:
            # print("Values", k, u)
            if k % 2 == 1: 
                s = min(s, minimums[k])
                k += 1
            if u % 2 == 0: 
                u -= 1
                s = min(s, minimums[u])
            k = k // 2
            u = u // 2
        output.append(str(s))

print("\n".join(output))

Test details

Test 1

Verdict:

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
8
10000000000
6
10000000000
6
...
Truncated

Test 2

Verdict:

input
200000 200000
398739055 65343131 699208332 3...

correct output
28609
129890
20378
20378
311522
...

user output
262144

Error:
Traceback (most recent call last):
  File "input/code.py", line 14, in <module>
    BuildS...