/ SeriousOJ /

Record Detail

Time Exceeded


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 1ms 536.0 KiB
#3 Accepted 1ms 532.0 KiB
#4 Accepted 1ms 532.0 KiB
#5 Accepted 1ms 532.0 KiB
#6 Accepted 1ms 532.0 KiB
#7 Accepted 1ms 532.0 KiB
#8 Accepted 1ms 532.0 KiB
#9 Accepted 1ms 532.0 KiB
#10 Accepted 1ms 520.0 KiB
#11 Accepted 1ms 388.0 KiB
#12 Accepted 1ms 532.0 KiB
#13 Accepted 1ms 536.0 KiB
#14 Accepted 1ms 324.0 KiB
#15 Accepted 1ms 532.0 KiB
#16 Accepted 1ms 532.0 KiB
#17 Accepted 1ms 496.0 KiB
#18 Accepted 1ms 344.0 KiB
#19 Accepted 1ms 320.0 KiB
#20 Accepted 1ms 348.0 KiB
#21 Accepted 1ms 532.0 KiB
#22 Accepted 1ms 484.0 KiB
#23 Accepted 1ms 324.0 KiB
#24 Accepted 1ms 320.0 KiB
#25 Accepted 1ms 532.0 KiB
#26 Accepted 1ms 532.0 KiB
#27 Accepted 1ms 408.0 KiB
#28 Accepted 1ms 532.0 KiB
#29 Accepted 1ms 532.0 KiB
#30 Accepted 1ms 532.0 KiB
#31 Accepted 1ms 316.0 KiB
#32 Accepted 1ms 540.0 KiB
#33 Accepted 1ms 572.0 KiB
#34 Accepted 1ms 332.0 KiB
#35 Accepted 1ms 532.0 KiB
#36 Accepted 1ms 532.0 KiB
#37 Accepted 1ms 392.0 KiB
#38 Accepted 1ms 340.0 KiB
#39 Accepted 1ms 392.0 KiB
#40 Accepted 1ms 480.0 KiB
#41 Accepted 1ms 488.0 KiB
#42 Accepted 1ms 324.0 KiB
#43 Accepted 1ms 484.0 KiB
#44 Accepted 1ms 520.0 KiB
#45 Accepted 1ms 532.0 KiB
#46 Accepted 1ms 536.0 KiB
#47 Accepted 1ms 488.0 KiB
#48 Accepted 1ms 532.0 KiB
#49 Accepted 1ms 536.0 KiB
#50 Accepted 1ms 320.0 KiB
#51 Accepted 1ms 532.0 KiB
#52 Accepted 1ms 328.0 KiB
#53 Accepted 1ms 532.0 KiB
#54 Accepted 1ms 536.0 KiB
#55 Accepted 1ms 532.0 KiB
#56 Accepted 1ms 532.0 KiB
#57 Accepted 1ms 480.0 KiB
#58 Accepted 1ms 532.0 KiB
#59 Accepted 1ms 532.0 KiB
#60 Accepted 1ms 360.0 KiB
#61 Accepted 1ms 388.0 KiB
#62 Accepted 1ms 480.0 KiB
#63 Accepted 1ms 536.0 KiB
#64 Accepted 1ms 532.0 KiB
#65 Accepted 1ms 536.0 KiB
#66 Accepted 1ms 568.0 KiB
#67 Accepted 1ms 484.0 KiB
#68 Accepted 1ms 532.0 KiB
#69 Accepted 1ms 532.0 KiB
#70 Accepted 1ms 552.0 KiB
#71 Accepted 1ms 352.0 KiB
#72 Accepted 1ms 532.0 KiB
#73 Accepted 1ms 532.0 KiB
#74 Accepted 1ms 532.0 KiB
#75 Accepted 1ms 532.0 KiB
#76 Accepted 1ms 492.0 KiB
#77 Accepted 1ms 368.0 KiB
#78 Accepted 1ms 324.0 KiB
#79 Accepted 1ms 532.0 KiB
#80 Accepted 1ms 484.0 KiB
#81 Accepted 1ms 520.0 KiB
#82 Accepted 1ms 496.0 KiB
#83 Accepted 1ms 532.0 KiB
#84 Accepted 2ms 528.0 KiB
#85 Accepted 2ms 532.0 KiB
#86 Accepted 3ms 320.0 KiB
#87 Accepted 4ms 532.0 KiB
#88 Accepted 4ms 532.0 KiB
#89 Accepted 4ms 532.0 KiB
#90 Accepted 3ms 532.0 KiB
#91 Accepted 1ms 532.0 KiB
#92 Accepted 825ms 808.0 KiB
#93 Accepted 809ms 620.0 KiB
#94 Accepted 820ms 616.0 KiB
#95 Accepted 813ms 532.0 KiB
#96 Accepted 818ms 532.0 KiB
#97 Time Exceeded ≥2001ms ≥1.27 MiB
#98 Time Exceeded ≥2100ms ≥1.27 MiB

Code

/*
 *   Copyright (c) 2025 Emon Thakur
 *   All rights reserved.
 */
#include<bits/stdc++.h>
using namespace std;
//#define cout file
int a[200005];
pair<int,int> sg[800005];
void build(int node,int start,int end)
{
    if(start==end)
    {
        sg[node] = {a[start],a[start]};
        return;
    }
    int mid = (start + end-1)/2;
    build(node*2,start,mid);
    build(node*2+1,mid+1,end);
    sg[node].first = min(sg[node*2].second,sg[node*2+1].second);
    sg[node].second = max(sg[node*2].first,sg[node*2+1].first);
    
}

void update(int node,int start,int end,int ind,int val)
{
    if(start==end)
    {
        sg[node] = {val,val};
        a[ind] = val;
        return;
    }
    int mid = (start+end-1)/2;
    if(ind <= mid) update(node*2,start,mid,ind,val);
    else update(node*2+1,mid+1,end,ind,val);
    sg[node].first = min(sg[node*2].second,sg[node*2+1].second);
    sg[node].second = max(sg[node*2].first,sg[node*2+1].first);
}

void solve(int tc)
{
    // string outp = "output"+to_string(tc)+".txt";
    // string inp = "input"+to_string(tc)+".txt";
    // ofstream file(outp);
    // freopen(inp.c_str(),"r",stdin);

    int n,q; cin >> n >> q;
    for(int i=1;i<=n;i++) cin >> a[i];
    build(1,1,n);
    while(q--)
    {
        int ind,val,player;
        cin >> ind >> val >> player;
        update(1,1,n,ind,val);
        (player)? cout<<sg[1].second<<'\n': cout<<sg[1].first<<'\n';
    }
}

int ans(int l,int r,int player)
{
    if(l==r) return a[l];
    int mid = (l+r-1)/2;
    int ans1 = ans(l,mid,player^1);
    int ans2 = ans(mid+1,r,player^1);
    return (player)? max(ans1,ans2): min(ans1,ans2);
}

void solve2(int tc)
{
    int n,q; cin >> n >> q;
    for(int i=1;i<=n;i++) cin >> a[i];
    while(q--)
    {
        int ind,val,player;
        cin >> ind >> val >> player;
        a[ind] = val;
        int x = ans(1,n,player);
        cout<<ans(1,n,player)<<'\n';
    }
}

int main()
{
    ios::sync_with_stdio(false); cin.tie(nullptr);
    solve2(0);
    // int l=0;
    // int r=99;
    // for(int i=l;i<=99;i++) solve(i);
    // //solve2();
}

Information

Submit By
Type
Submission
Problem
P1169 Thakur vs Roy again
Language
C++17 (G++ 13.2.0)
Submit At
2025-03-03 15:02:34
Judged At
2025-03-03 15:02:34
Judged By
Score
96
Total Time
≥2100ms
Peak Memory
≥1.27 MiB