/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 2ms 2.527 MiB
#2 Accepted 2ms 2.57 MiB
#3 Accepted 2ms 2.527 MiB
#4 Accepted 2ms 4.566 MiB
#5 Accepted 2ms 2.602 MiB
#6 Accepted 2ms 2.527 MiB
#7 Accepted 2ms 2.395 MiB
#8 Accepted 2ms 2.527 MiB
#9 Accepted 2ms 2.527 MiB
#10 Accepted 2ms 2.57 MiB
#11 Accepted 2ms 2.527 MiB
#12 Accepted 2ms 2.527 MiB
#13 Accepted 2ms 4.574 MiB
#14 Accepted 2ms 2.578 MiB
#15 Accepted 2ms 2.395 MiB
#16 Accepted 2ms 4.32 MiB
#17 Accepted 3ms 2.527 MiB
#18 Accepted 2ms 4.793 MiB
#19 Accepted 2ms 4.754 MiB
#20 Accepted 2ms 2.516 MiB
#21 Accepted 2ms 4.547 MiB
#22 Accepted 2ms 2.406 MiB
#23 Accepted 2ms 2.527 MiB
#24 Accepted 2ms 4.527 MiB
#25 Accepted 2ms 4.527 MiB
#26 Accepted 2ms 4.578 MiB
#27 Accepted 2ms 2.574 MiB
#28 Accepted 2ms 2.527 MiB
#29 Accepted 2ms 2.527 MiB
#30 Accepted 2ms 2.527 MiB
#31 Accepted 2ms 4.527 MiB
#32 Accepted 2ms 2.527 MiB
#33 Accepted 2ms 4.527 MiB
#34 Accepted 2ms 2.527 MiB
#35 Accepted 2ms 4.527 MiB
#36 Accepted 2ms 2.527 MiB
#37 Accepted 2ms 4.324 MiB
#38 Accepted 2ms 4.527 MiB
#39 Accepted 2ms 2.527 MiB
#40 Accepted 1ms 2.336 MiB
#41 Accepted 2ms 4.797 MiB
#42 Accepted 2ms 4.57 MiB
#43 Accepted 2ms 2.527 MiB
#44 Accepted 2ms 2.527 MiB
#45 Accepted 2ms 2.527 MiB
#46 Accepted 2ms 2.527 MiB
#47 Accepted 2ms 2.504 MiB
#48 Accepted 2ms 2.543 MiB
#49 Accepted 2ms 2.527 MiB
#50 Accepted 1ms 2.527 MiB
#51 Accepted 2ms 4.527 MiB
#52 Accepted 2ms 2.504 MiB
#53 Accepted 2ms 4.527 MiB
#54 Accepted 2ms 4.527 MiB
#55 Accepted 2ms 2.527 MiB
#56 Accepted 2ms 2.547 MiB
#57 Accepted 2ms 2.527 MiB
#58 Accepted 2ms 2.527 MiB
#59 Accepted 2ms 2.527 MiB
#60 Accepted 2ms 2.543 MiB
#61 Accepted 3ms 4.57 MiB
#62 Accepted 2ms 4.527 MiB
#63 Accepted 2ms 4.527 MiB
#64 Accepted 2ms 2.527 MiB
#65 Accepted 2ms 4.398 MiB
#66 Accepted 2ms 2.527 MiB
#67 Accepted 2ms 2.527 MiB
#68 Accepted 2ms 4.527 MiB
#69 Accepted 2ms 2.527 MiB
#70 Accepted 2ms 4.527 MiB
#71 Accepted 2ms 2.527 MiB
#72 Accepted 2ms 2.527 MiB
#73 Accepted 2ms 4.527 MiB
#74 Accepted 2ms 2.332 MiB
#75 Accepted 2ms 2.57 MiB
#76 Accepted 2ms 2.324 MiB
#77 Accepted 2ms 2.527 MiB
#78 Accepted 2ms 2.527 MiB
#79 Accepted 2ms 2.527 MiB
#80 Accepted 2ms 2.777 MiB
#81 Accepted 2ms 2.527 MiB
#82 Accepted 2ms 4.727 MiB
#83 Accepted 2ms 2.324 MiB
#84 Accepted 2ms 2.527 MiB
#85 Accepted 2ms 4.527 MiB
#86 Accepted 2ms 2.527 MiB
#87 Accepted 2ms 4.527 MiB
#88 Accepted 2ms 2.527 MiB
#89 Accepted 2ms 2.527 MiB
#90 Accepted 2ms 2.527 MiB
#91 Accepted 2ms 2.527 MiB
#92 Accepted 9ms 4.996 MiB
#93 Accepted 9ms 4.527 MiB
#94 Accepted 8ms 2.777 MiB
#95 Accepted 10ms 4.703 MiB
#96 Accepted 9ms 4.754 MiB
#97 Accepted 182ms 8.887 MiB
#98 Accepted 185ms 8.414 MiB
#99 Accepted 186ms 9.199 MiB
#100 Accepted 191ms 8.613 MiB

Code

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

const int N = 2e5+2;

int th_tree[4*N], roy_tree[4*N], a[N];

void build_th(int n,int b,int e,bool mn = 1) {
    if(b == e) {
        th_tree[n] = a[b];
        return;
    }
    int mid = (e - b + 1) / 2 + b - 1;
    build_th(2*n,b,mid,!mn);
    build_th(2*n+1,mid+1,e,!mn);
    if(mn) th_tree[n] = min(th_tree[2*n],th_tree[2*n+1]);
    else th_tree[n] = max(th_tree[2*n],th_tree[2*n+1]);
}

void build_roy(int n,int b,int e,bool mx = 1) {
    if(b == e) {
        roy_tree[n] = a[b];
        return;
    }
    int mid = (e - b + 1) / 2 + b - 1;
    build_roy(2*n,b,mid,!mx);
    build_roy(2*n+1,mid+1,e,!mx);
    if(!mx) roy_tree[n] = min(roy_tree[2*n],roy_tree[2*n+1]);
    else roy_tree[n] = max(roy_tree[2*n],roy_tree[2*n+1]);
}

void upd_th(int n,int b,int e,int idx,int v,bool mn = 1) {
    if(b == e) {
        th_tree[n] = v;
        return;
    }
    int mid = (e - b + 1) / 2 + b - 1;
    if(idx <= mid) upd_th(2*n,b,mid,idx,v,!mn);
    else upd_th(2*n+1,mid+1,e,idx,v,!mn);
    if(mn) th_tree[n] = min(th_tree[2*n],th_tree[2*n+1]);
    else th_tree[n] = max(th_tree[2*n],th_tree[2*n+1]);
}

void upd_roy(int n,int b,int e,int idx,int v,bool mx = 1) {
    if(b == e) {
        roy_tree[n] = v;
        return;
    }
    int mid = (e - b + 1) / 2 + b - 1;
    if(idx <= mid) upd_roy(2*n,b,mid,idx,v,!mx);
    else upd_roy(2*n+1,mid+1,e,idx,v,!mx);
    if(!mx) roy_tree[n] = min(roy_tree[2*n],roy_tree[2*n+1]);
    else roy_tree[n] = max(roy_tree[2*n],roy_tree[2*n+1]);
}

void solve() {
    int n,q;
    cin >> n >> q;
    for(int i = 1; i <= n; i++)
        cin >> a[i];
    build_th(1,1,n);
    build_roy(1,1,n);
    while(q--) {
        int i,v,p;
        cin >> i >> v >> p;
        upd_th(1,1,n,i,v);
        upd_roy(1,1,n,i,v);
        if(!p) cout << th_tree[1] << '\n';
        else cout << roy_tree[1] << '\n';
    }
    return;
}

int32_t main() {
    ios_base::sync_with_stdio(false);cin.tie(NULL);
    int tc = 1;
    // cin >> tc;
    for(int kase = 1; kase <= tc; kase++) {
        //cout << "Case " << kase << ": ";
        solve();
    }
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1169 Thakur vs Roy again
Contest
Brain Booster #9
Language
C++17 (G++ 13.2.0)
Submit At
2025-04-06 17:39:14
Judged At
2025-04-06 17:39:14
Judged By
Score
100
Total Time
191ms
Peak Memory
9.199 MiB