Submission details
Task:Dynamic Range Minimum Queries
Sender:ariadna.roga
Submission time:2025-09-21 11:09:24 +0300
Language:C++ (C++17)
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2--details

Code

#include <iostream>
#include <vector>

using namespace std;

int minimum(vector<int> &v, int a, int b) {
    int m;
    if (a == b)
        m = v[a];
    else if (b == a+1)
        m = min(v[a], v[b]);
    else
    {
        int h = (a + b) / 2;
        m = min(minimum(v, a, h), minimum(v, h + 1, b));
    }
    return m;
}

int main() {
    int n, q;
    cin >> n >> q;

    vector<int> v(n);
    for (int i = 0; i < n; ++i) {
        cin >> v[i];
    }

    for (int i = 0; i < q; ++i) {
        int t_query;
        cin >> t_query;

        if (t_query == 1) {
            int k, u;
            cin >> k >> u;
            v[k-1] = u;
        }
        else if (t_query == 2) {
            int a, b;
            cin >> a >> b;
            --a;
            --b;
            cout << minimum(v, a, b) << endl;
        }
        else {
            cerr << "Invalid query type: " << t_query << endl;
        }
    }
}

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
...
Truncated

Test 2

Verdict:

input
200000 200000
398739055 65343131 699208332 3...

correct output
28609
129890
20378
20378
311522
...

user output
(empty)