/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 2ms 532.0 KiB
#2 Accepted 2ms 532.0 KiB
#3 Accepted 2ms 532.0 KiB
#4 Accepted 2ms 532.0 KiB
#5 Accepted 2ms 568.0 KiB
#6 Accepted 4ms 532.0 KiB
#7 Accepted 4ms 436.0 KiB
#8 Accepted 5ms 532.0 KiB
#9 Accepted 4ms 532.0 KiB
#10 Accepted 4ms 532.0 KiB
#11 Accepted 4ms 532.0 KiB
#12 Accepted 4ms 532.0 KiB
#13 Accepted 4ms 532.0 KiB
#14 Accepted 5ms 532.0 KiB
#15 Accepted 4ms 532.0 KiB
#16 Accepted 4ms 532.0 KiB
#17 Accepted 4ms 532.0 KiB
#18 Accepted 4ms 532.0 KiB
#19 Accepted 4ms 532.0 KiB
#20 Accepted 4ms 532.0 KiB
#21 Accepted 4ms 444.0 KiB
#22 Accepted 4ms 532.0 KiB
#23 Accepted 2ms 532.0 KiB
#24 Accepted 2ms 532.0 KiB
#25 Accepted 2ms 496.0 KiB
#26 Accepted 3ms 532.0 KiB
#27 Accepted 3ms 532.0 KiB
#28 Accepted 4ms 536.0 KiB
#29 Accepted 4ms 532.0 KiB
#30 Accepted 4ms 484.0 KiB
#31 Accepted 4ms 320.0 KiB
#32 Accepted 5ms 532.0 KiB
#33 Accepted 4ms 532.0 KiB
#34 Accepted 4ms 532.0 KiB
#35 Accepted 4ms 532.0 KiB
#36 Accepted 4ms 532.0 KiB
#37 Accepted 4ms 532.0 KiB
#38 Accepted 5ms 488.0 KiB
#39 Accepted 4ms 532.0 KiB
#40 Accepted 4ms 532.0 KiB
#41 Accepted 4ms 448.0 KiB
#42 Accepted 4ms 532.0 KiB
#43 Accepted 4ms 532.0 KiB
#44 Accepted 4ms 764.0 KiB
#45 Accepted 4ms 532.0 KiB
#46 Accepted 4ms 532.0 KiB
#47 Accepted 4ms 536.0 KiB
#48 Accepted 4ms 532.0 KiB
#49 Accepted 5ms 492.0 KiB
#50 Accepted 4ms 532.0 KiB
#51 Accepted 5ms 320.0 KiB
#52 Accepted 4ms 324.0 KiB
#53 Accepted 4ms 532.0 KiB
#54 Accepted 4ms 532.0 KiB
#55 Accepted 4ms 320.0 KiB
#56 Accepted 4ms 464.0 KiB
#57 Accepted 4ms 532.0 KiB
#58 Accepted 4ms 532.0 KiB
#59 Accepted 4ms 532.0 KiB
#60 Accepted 4ms 532.0 KiB
#61 Accepted 4ms 532.0 KiB
#62 Accepted 4ms 532.0 KiB
#63 Accepted 4ms 320.0 KiB
#64 Accepted 4ms 532.0 KiB
#65 Accepted 4ms 532.0 KiB
#66 Accepted 4ms 532.0 KiB
#67 Accepted 4ms 532.0 KiB
#68 Accepted 4ms 532.0 KiB
#69 Accepted 5ms 764.0 KiB
#70 Accepted 4ms 532.0 KiB
#71 Accepted 4ms 532.0 KiB
#72 Accepted 3ms 532.0 KiB
#73 Accepted 3ms 544.0 KiB
#74 Accepted 3ms 532.0 KiB
#75 Accepted 3ms 532.0 KiB
#76 Accepted 3ms 532.0 KiB
#77 Accepted 3ms 532.0 KiB
#78 Accepted 3ms 532.0 KiB
#79 Accepted 3ms 532.0 KiB
#80 Accepted 3ms 536.0 KiB
#81 Accepted 3ms 440.0 KiB
#82 Accepted 3ms 532.0 KiB
#83 Accepted 3ms 532.0 KiB
#84 Accepted 4ms 532.0 KiB
#85 Accepted 4ms 536.0 KiB
#86 Accepted 4ms 532.0 KiB
#87 Accepted 4ms 532.0 KiB
#88 Accepted 4ms 532.0 KiB
#89 Accepted 4ms 532.0 KiB
#90 Accepted 4ms 532.0 KiB
#91 Accepted 4ms 320.0 KiB
#92 Accepted 21ms 1.023 MiB
#93 Accepted 15ms 1.082 MiB
#94 Accepted 22ms 1.137 MiB
#95 Accepted 15ms 1.18 MiB
#96 Accepted 15ms 1.02 MiB
#97 Accepted 138ms 11.848 MiB
#98 Accepted 138ms 11.84 MiB
#99 Accepted 140ms 11.844 MiB
#100 Accepted 139ms 11.77 MiB

Code

#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define endl '\n'
#define ll long long
#define ld long double
#define vi vector<ll>
#define sz(x) (int)x.size()
#define all(x) x.begin(), x.end()
#define srt(v) sort(v.begin(),v.end())
#define rep(i, a, b) for(ll i = (a); i < (b); i++)
#define print(v) for(auto e:v) cout<<e<<" "; cout<<endl;
#define printp(v) for(auto e:v) cout<<e.first<<" "<<e.second<<endl;

const int N = 2e5;
ll arr[N];
pair<ll,ll>seg[4*N];
void build(ll node,ll start,ll end){
    if(start == end){
        seg[node] = {arr[start],arr[start]};
        return;
    }
    ll mid = (start+end-1)/2;
    build(node*2,start,mid);
    build(node*2+1,mid+1,end);
    seg[node].first = min(seg[node*2].second,seg[node*2 +1].second);
    seg[node].second = max(seg[node*2].first,seg[node*2 +1].first);
}

void update(ll node,ll start,ll end,ll pos,ll v){
    if(start == end){
        seg[node] = {v,v};
        arr[start] = v;
        return;
    }
    ll mid = (start+end-1)/2;
    if(pos<=mid){
        update(node*2,start,mid,pos,v);
    }
    else{
        update(node*2 +1,mid+1,end,pos,v);
    }
    seg[node].first = min(seg[node*2].second,seg[node*2 +1].second);
    seg[node].second = max(seg[node*2].first,seg[node*2 +1].first);
}

void solve() {
    ll n,m;cin>>n>>m;
    //vi p(n);
    rep(i,1,n+1){
        cin>>arr[i];
    }
    build(1,1,n);
    while (m--)
    {
        ll i,v,p;cin>>i>>v>>p;
        update(1,1,n,i,v);
        if(p==0){
            cout<<seg[1].first<<endl;
        }
        else{
            cout<<seg[1].second<<endl;
        }
    }
    
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int t=1;//cin>>t;
    for(int i =1;i<=t;i++){
        solve();
    }
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1169 F. Thakur vs Roy again
Language
C++17 (G++ 13.2.0)
Submit At
2025-07-11 07:45:33
Judged At
2025-07-11 07:45:33
Judged By
Score
100
Total Time
140ms
Peak Memory
11.848 MiB