/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 1ms 532.0 KiB
#3 Accepted 492ms 2.578 MiB
#4 Accepted 398ms 5.352 MiB
#5 Accepted 329ms 4.641 MiB
#6 Accepted 296ms 2.16 MiB
#7 Accepted 1ms 532.0 KiB
#8 Accepted 1ms 284.0 KiB
#9 Accepted 547ms 5.562 MiB
#10 Accepted 503ms 6.77 MiB

Code

#include<bits/stdc++.h>
using namespace std;
#define int long long

void sol(){
    int n;
    cin >> n;
    int a[n];
    for(int &i:a) cin >> i;
    set<int>s;
    for(int i = 0; i < n; i++){
        if(i and a[i] < a[i - 1]) s.insert(i);
    }
    int q;
    cin >> q;
    while(q--){
        int t, l, r;
        cin >> t >> l >> r;
        l--, r--;
        if(t == 2){
            auto it = s.lower_bound(l + 1);
            if(it == s.end()) cout << "YES" << endl;
            else if(*it > r) cout << "YES" << endl;
            else cout << "NO" << endl;
        }
        else{

            a[l] = r + 1;
            if(n == 1) continue;
            if(l){
                if(s.find(l) != s.end()) s.erase(l);
               // a[l] = r;
                if(a[l] < a[l - 1]) s.insert(l);
            }
            if(l < n - 1){
                if(s.find(l + 1) != s.end()) s.erase(l + 1);
                //a[l] = r;
                if(a[l + 1] < a[l]) s.insert(l + 1);
            }
        }
    }
}
signed main(){
    int t = 1;
    //cin >> t;
    while(t--){
        sol();
    }
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1085 Sorted or !Sorted
Contest
Bangladesh 2.0
Language
C++20 (G++ 13.2.0)
Submit At
2024-08-16 17:31:33
Judged At
2024-08-16 17:31:33
Judged By
Score
100
Total Time
547ms
Peak Memory
6.77 MiB