/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 2ms 2.527 MiB
#2 Accepted 2ms 2.527 MiB
#3 Accepted 2ms 2.324 MiB
#4 Accepted 2ms 2.527 MiB
#5 Accepted 2ms 2.527 MiB
#6 Accepted 2ms 2.527 MiB
#7 Accepted 2ms 2.527 MiB
#8 Accepted 2ms 2.547 MiB
#9 Accepted 4ms 2.527 MiB
#10 Accepted 2ms 540.0 KiB
#11 Accepted 2ms 2.543 MiB
#12 Accepted 1ms 540.0 KiB
#13 Accepted 2ms 2.75 MiB
#14 Accepted 2ms 2.566 MiB
#15 Accepted 2ms 496.0 KiB
#16 Accepted 3ms 2.324 MiB
#17 Accepted 3ms 2.32 MiB
#18 Accepted 2ms 2.527 MiB
#19 Accepted 2ms 2.527 MiB
#20 Accepted 1ms 540.0 KiB
#21 Accepted 1ms 540.0 KiB
#22 Accepted 2ms 2.324 MiB
#23 Accepted 2ms 2.527 MiB
#24 Accepted 2ms 2.543 MiB
#25 Accepted 1ms 540.0 KiB
#26 Accepted 2ms 2.324 MiB
#27 Accepted 2ms 2.527 MiB
#28 Accepted 3ms 2.527 MiB
#29 Accepted 3ms 2.324 MiB
#30 Accepted 2ms 332.0 KiB
#31 Accepted 2ms 328.0 KiB
#32 Accepted 3ms 2.324 MiB
#33 Accepted 3ms 2.781 MiB
#34 Accepted 2ms 328.0 KiB
#35 Accepted 3ms 2.32 MiB
#36 Accepted 3ms 2.34 MiB
#37 Accepted 2ms 540.0 KiB
#38 Accepted 2ms 2.754 MiB
#39 Accepted 2ms 2.504 MiB
#40 Accepted 7ms 540.0 KiB
#41 Accepted 2ms 2.527 MiB
#42 Accepted 2ms 2.324 MiB
#43 Accepted 2ms 2.316 MiB
#44 Accepted 2ms 2.527 MiB
#45 Accepted 3ms 2.516 MiB
#46 Accepted 2ms 2.527 MiB
#47 Accepted 2ms 540.0 KiB
#48 Accepted 2ms 2.527 MiB
#49 Accepted 2ms 2.527 MiB
#50 Accepted 5ms 2.527 MiB
#51 Accepted 2ms 328.0 KiB
#52 Accepted 2ms 328.0 KiB
#53 Accepted 2ms 2.32 MiB
#54 Accepted 2ms 328.0 KiB
#55 Accepted 3ms 2.547 MiB
#56 Accepted 2ms 332.0 KiB
#57 Accepted 2ms 332.0 KiB
#58 Accepted 1ms 332.0 KiB
#59 Accepted 2ms 2.43 MiB
#60 Accepted 2ms 2.527 MiB
#61 Accepted 2ms 2.527 MiB
#62 Accepted 2ms 2.527 MiB
#63 Accepted 2ms 2.527 MiB
#64 Accepted 3ms 2.527 MiB
#65 Accepted 2ms 2.527 MiB
#66 Accepted 3ms 2.527 MiB
#67 Accepted 3ms 2.527 MiB
#68 Accepted 3ms 2.32 MiB
#69 Accepted 3ms 2.527 MiB
#70 Accepted 2ms 2.527 MiB
#71 Accepted 1ms 560.0 KiB
#72 Accepted 2ms 2.516 MiB
#73 Accepted 2ms 2.527 MiB
#74 Accepted 2ms 588.0 KiB
#75 Accepted 1ms 328.0 KiB
#76 Accepted 2ms 2.32 MiB
#77 Accepted 2ms 2.527 MiB
#78 Accepted 2ms 2.527 MiB
#79 Accepted 2ms 2.32 MiB
#80 Accepted 2ms 2.324 MiB
#81 Accepted 2ms 2.508 MiB
#82 Accepted 2ms 2.32 MiB
#83 Accepted 2ms 2.32 MiB
#84 Accepted 3ms 2.32 MiB
#85 Accepted 3ms 2.527 MiB
#86 Accepted 3ms 2.324 MiB
#87 Accepted 2ms 2.32 MiB
#88 Accepted 2ms 2.32 MiB
#89 Accepted 2ms 2.527 MiB
#90 Accepted 2ms 2.527 MiB
#91 Accepted 2ms 2.527 MiB
#92 Accepted 9ms 3.074 MiB
#93 Accepted 8ms 4.777 MiB
#94 Accepted 8ms 3.078 MiB
#95 Accepted 8ms 3.102 MiB
#96 Accepted 8ms 3.074 MiB
#97 Accepted 220ms 14.02 MiB
#98 Accepted 156ms 14.062 MiB
#99 Accepted 154ms 14.145 MiB
#100 Accepted 154ms 13.77 MiB

Code

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

#define int        long long int
#define pb         push_back
#define all(x)     x.begin(),x.end()
#define allr(x)    x.rbegin(),x.rend()
#define ii         pair<int,int>
#define endl       '\n'

const int N = 2e5 + 5;
int a[N];
ii seg[4 * N];

void build(int ind, int b, int e) {
    if(b == e) {
        seg[ind] = {a[b], a[b]};
        return;
    }
    int l = ind << 1, r = l | 1;
    int mid = (e + b - 1) >> 1;
    build(l, b, mid);
    build(r, mid + 1, e);
    seg[ind].first = min(seg[l].second, seg[r].second);
    seg[ind].second = max(seg[l].first, seg[r].first);
}
void update(int ind, int b, int e, int i, int x) {
    if(b > i or e < i)  return;
    if(b == e and b == i) {
        seg[ind] = {x, x};
        return;
    }
    int l = ind << 1, r = l | 1;
    int mid = (e + b - 1) >> 1;
    update(l, b, mid, i, x);
    update(r, mid + 1, e, i, x);
    seg[ind].first = min(seg[l].second, seg[r].second);
    seg[ind].second = max(seg[l].first, seg[r].first);
}
// index based on 1
// TC -> build: O(N)
//    -> query: O(logN)

void pipra(int tc) {
    int n, q;
    cin >> n >> q;
    for(int i = 0 ; i < n ; i++)
        cin >> a[i];
    build(1, 0, n - 1);
    while(q--) {
        int i, v, x;
        cin >> i >> v >> x;
        i--;
        update(1, 0, n - 1, i, v);
        cout << (x ? seg[1].second : seg[1].first) << endl;
    }
}

int32_t main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);

    int t = 1;
    // cin >> t;
    for(int i = 1 ; i <= t ; i++)
        pipra(i);
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1169 Thakur vs Roy again
Language
C++17 (G++ 13.2.0)
Submit At
2025-04-09 20:23:18
Judged At
2025-04-09 20:23:18
Judged By
Score
100
Total Time
220ms
Peak Memory
14.145 MiB