Submission details
Task:Dynamic Range Minimum Queries
Sender:aalto26dh_004
Submission time:2026-09-23 14:42:54 +0300
Language:C++ (C++20)
Status:READY
Result:
Test results
testverdicttime
#10.00 sdetails
#20.54 sdetails

Code

#include "iostream"
#include "cmath"
#include "climits"
#include "algorithm"

int main() {
    int n, q;
    std::cin >> n >> q;
    int m = std::sqrt(n);
    int array[n], mins[m + 1];
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < m; j++) {
            std::cin >> array[i * m + j];
        }
        mins[i] = *std::min_element(array + i * m, array + (i + 1) * m);
    }
    int rest = n - m * m;
    for (int i = 0; i < rest; i++) {
        std::cin >> array[m * m + i];
    }
    if (rest) mins[m] = *std::min_element(array + m * m, array + n);
    int queries[3];
    for (int i = 0; i < q; i++) {
        std::cin >> queries[0] >> queries[1] >> queries[2];
        int idx = (queries[1] - 1) / m;
        if (queries[0] == 1) {
            array[queries[1] - 1] = queries[2];
            mins[idx] = *std::min_element(array + idx * m, array + (idx + 1) * m);
        } else {
            int idx2 = (queries[2] - 1) / m;
            int tmp = *std::min_element(mins + idx, mins + idx2);
            for (int i = queries[1] - 1; i < (idx + 1) * m; i++) {
                tmp = std::min(tmp, array[i]);
            }
            for (int i = idx2 * m; i < queries[2] - 1; i++) {
                tmp = std::min(tmp, array[i]);
            }
            std::cout << tmp << std::endl;
        }
    }
}

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

Feedback: Incorrect character on line 1 col 1: expected "7", got "6"

Test 2

Verdict:

input
200000 200000
398739055 65343131 699208332 3...

correct output
28609
129890
20378
20378
311522
...

user output
28609
129890
20378
20378
311522
...

Feedback: Incorrect character on line 54 col 1: expected "1848319", got "-1866775953"