Submission details
Task:Dynamic Range Minimum Queries
Sender:azeaus1
Submission time:2025-09-21 20:19:39 +0300
Language:Python3 (PyPy3)
Status:READY
Result:
Test results
testverdicttime
#10.04 sdetails
#20.63 sdetails

Code

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

min_queries = [[0 for _ in range(n)] for _ in range(n)]
for i in range(n):
    min_queries[i][i] = values[i]
    for j in range(i+1, n):
        if ((j-i+1) & (j-i)) == 0:
            min_queries[i][j] = min(values[i:j+1])

def compute_min_queries(x):
    for i in range(n):
        min_queries[i][i] = values[i]
        for j in range(max(i+1,x), n):
            if ((j-i+1) & (j-i)) == 0:
                min_queries[i][j] = min(values[i:j+1])

for _ in range(q):
    query = [int(x) for x in input().split()]
    if query[0] == 1:
        values[query[1]-1] = query[2]
        compute_min_queries(query[1]-1)
    else:
        queries.append(min_queries[query[1]-1][query[2]-1])

for i in range(len(queries)):
    print(queries[i])

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
7
6
0
4
0
...
Truncated

Test 2

Verdict:

input
200000 200000
398739055 65343131 699208332 3...

correct output
28609
129890
20378
20378
311522
...

user output
(empty)