Submission details
Task:Dynamic Range Minimum Queries
Sender:luukwin
Submission time:2025-09-21 17:50:52 +0300
Language:Python3 (PyPy3)
Status:READY
Result:
Test results
testverdicttime
#10.07 sdetails
#2--details

Code

import math

n, q = [int(x) for x in input().split()]
array = [int(x) for x in input().split()]

def calculateMins():
    minimums = {}
    for i in range(n):
        for j in range(i, n):
            if i != j and math.log2(j-i + 1) % 1 == 0:
                minimums.update({str((i+1, j+1)) : min(array[i:j+1])}) 
    # print(minimums)
    return minimums

minimums = calculateMins()
output = []

for i in range(q):
    action, k, u = [int(x) for x in input().split()]
    if action == 1: 
        array[k - 1] = u
        minimums = calculateMins()
    else: 
        if k != u:
            start = int(math.log2(u))
            minPower = 2 ** start  
            while minPower > u - k + 1: 
                start -= 1   
                minPower = 2 ** start

            print(minPower, str((k, k + minPower - 1)), str((u - minPower + 1, u)))
            output.append(str(min(minimums[str((k, k + minPower - 1))], minimums[str((u - minPower + 1, u))])))
        else: output.append(str(array[u]))

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
2 (1, 2) (1, 2)
2 (1, 2) (2, 3)
4 (1, 4) (1, 4)
4 (1, 4) (2, 5)
4 (1, 4) (3, 6)
...
Truncated

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

Test 2

Verdict:

input
200000 200000
398739055 65343131 699208332 3...

correct output
28609
129890
20378
20378
311522
...

user output
(empty)