Submission details
Task:Dynamic Range Minimum Queries
Sender:aalto26dh_019
Submission time:2026-09-22 07:59:29 +0300
Language:C++ (C++20)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.48 sdetails

Code

#include <iostream>
#include <vector>
#include <climits>
using std::cout;
using std::endl;
#define DEBUG std::cout<<"LINE"<<__LINE__;
#define IN(A) int A;std::cin>>A;
#define BUG(A,B) std::cout<<A<<B<<std::endl;

template<typename T> void printV(std::vector<T> V) {
    std::cout<<endl;
    for (int i=0;i<V.size()-1;i++) {
        std::cout<<V[i]<<" ";
    }
    std::cout<<V[V.size()-1];
    std::cout<<endl;
}
int64_t max3(int64_t a,int64_t b,int64_t c) {
    return std::max(a,std::max(b,c));
}
struct compute {
    std::vector<int> data;
    std::vector<std::pair<int,int>> result;
    bool start() {
        IN(n);
        IN(q)
        int k;
        for (k=1;k<n;k=k*2);
        k=k*2;

        data.assign(k,INT_MAX);

        for (int i=0;i<n;i++) {
            std::cin>>data[i+k/2];
        }
        for (int i=k/2+n-1;i>0;i--) {
            data[i/2]=std::min(data[i],data[i/2]);
        }
        for (int i=0;i<q;i++) {
            IN(u)
            IN(a);
            IN(b);
            a=a+k/2-1;

            if (u==2) {
                int v=INT_MAX;
                b=b+k/2-1;
                while (a<=b) {
                    if (a%2==1) v=std::min(v,data[a++]);
                    if (b%2==0) v=std::min(v,data[b--]);
                    a=a/2;
                    b=b/2;
                }
                cout<<v<<endl;
            }
            if (u==1) {
                data[a]=b;
                while (a>0) {
                    a=a/2;
                    int t=std::max(0,a);
                    data[t]=std::min(data[t*2],data[t*2+1]);
                }
            }
        }

        return true;
    }


    void readV(int n) {
        for (int i=0;i<n;i++) std::cin>>data[i];

    }
};

int main() {
    compute comp;
    comp.start();


}

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

Test 2

Verdict: ACCEPTED

input
200000 200000
398739055 65343131 699208332 3...

correct output
28609
129890
20378
20378
311522
...

user output
28609
129890
20378
20378
311522
...