/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 1ms 436.0 KiB
#3 Accepted 1ms 532.0 KiB
#4 Accepted 1ms 324.0 KiB
#5 Accepted 1ms 500.0 KiB
#6 Accepted 1ms 320.0 KiB
#7 Accepted 1ms 532.0 KiB
#8 Accepted 1ms 532.0 KiB
#9 Accepted 1ms 488.0 KiB
#10 Accepted 1ms 532.0 KiB
#11 Accepted 1ms 508.0 KiB
#12 Accepted 1ms 348.0 KiB
#13 Accepted 1ms 392.0 KiB
#14 Accepted 1ms 532.0 KiB
#15 Accepted 1ms 532.0 KiB
#16 Accepted 1ms 560.0 KiB
#17 Accepted 1ms 532.0 KiB
#18 Accepted 1ms 384.0 KiB
#19 Accepted 1ms 364.0 KiB
#20 Accepted 1ms 364.0 KiB
#21 Accepted 1ms 372.0 KiB
#22 Accepted 1ms 532.0 KiB
#23 Accepted 1ms 440.0 KiB
#24 Accepted 1ms 532.0 KiB
#25 Accepted 1ms 492.0 KiB
#26 Accepted 1ms 364.0 KiB
#27 Accepted 1ms 364.0 KiB
#28 Accepted 1ms 516.0 KiB
#29 Accepted 1ms 356.0 KiB
#30 Accepted 1ms 532.0 KiB
#31 Accepted 1ms 504.0 KiB
#32 Accepted 1ms 532.0 KiB
#33 Accepted 1ms 536.0 KiB
#34 Accepted 1ms 408.0 KiB
#35 Accepted 1ms 320.0 KiB
#36 Accepted 1ms 488.0 KiB
#37 Accepted 1ms 532.0 KiB
#38 Accepted 1ms 444.0 KiB
#39 Accepted 1ms 532.0 KiB
#40 Accepted 1ms 432.0 KiB
#41 Accepted 1ms 444.0 KiB
#42 Accepted 1ms 532.0 KiB
#43 Accepted 1ms 476.0 KiB
#44 Accepted 1ms 488.0 KiB
#45 Accepted 1ms 532.0 KiB
#46 Accepted 1ms 420.0 KiB
#47 Accepted 1ms 448.0 KiB
#48 Accepted 1ms 532.0 KiB
#49 Accepted 1ms 552.0 KiB
#50 Accepted 1ms 560.0 KiB
#51 Accepted 1ms 532.0 KiB
#52 Accepted 1ms 532.0 KiB
#53 Accepted 1ms 356.0 KiB
#54 Accepted 1ms 532.0 KiB
#55 Accepted 1ms 356.0 KiB
#56 Accepted 1ms 352.0 KiB
#57 Accepted 1ms 556.0 KiB
#58 Accepted 1ms 396.0 KiB
#59 Accepted 1ms 532.0 KiB
#60 Accepted 1ms 532.0 KiB
#61 Accepted 1ms 344.0 KiB
#62 Accepted 1ms 324.0 KiB
#63 Accepted 3ms 532.0 KiB
#64 Accepted 4ms 532.0 KiB
#65 Accepted 4ms 532.0 KiB
#66 Accepted 5ms 516.0 KiB
#67 Accepted 4ms 532.0 KiB
#68 Accepted 4ms 532.0 KiB
#69 Accepted 4ms 532.0 KiB
#70 Accepted 4ms 320.0 KiB
#71 Accepted 4ms 532.0 KiB
#72 Accepted 4ms 532.0 KiB
#73 Accepted 4ms 532.0 KiB
#74 Accepted 4ms 532.0 KiB
#75 Accepted 4ms 532.0 KiB
#76 Accepted 4ms 536.0 KiB
#77 Accepted 4ms 344.0 KiB
#78 Accepted 4ms 532.0 KiB
#79 Accepted 4ms 532.0 KiB
#80 Accepted 4ms 532.0 KiB
#81 Accepted 4ms 536.0 KiB
#82 Accepted 4ms 460.0 KiB
#83 Accepted 4ms 532.0 KiB
#84 Accepted 4ms 532.0 KiB
#85 Accepted 4ms 484.0 KiB
#86 Accepted 4ms 532.0 KiB
#87 Accepted 4ms 564.0 KiB
#88 Accepted 4ms 344.0 KiB
#89 Accepted 4ms 444.0 KiB
#90 Accepted 4ms 532.0 KiB
#91 Accepted 4ms 532.0 KiB
#92 Accepted 25ms 1.059 MiB
#93 Accepted 9ms 1.02 MiB
#94 Accepted 9ms 1.023 MiB
#95 Accepted 9ms 1.102 MiB
#96 Accepted 10ms 1.02 MiB
#97 Accepted 171ms 12.289 MiB
#98 Accepted 171ms 12.312 MiB
#99 Accepted 170ms 12.32 MiB
#100 Accepted 190ms 12.32 MiB

Code


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

#include <iostream>
#include <vector>
#include <queue>
#include <unordered_set>
#include <iterator>


#define ll long long int
#define pii pair<int, int>
#define pll pair<long long, long long>
#define vi vector<int>
#define vll vector<long long>
#define mii map<int, int>
#define si set<int>
#define sc set<char>

#define loop(i,s,e) for(long long int i=s;i<e;i++)
#define cf(i,e,s) for(long long int i=e;i<=s;i++)
#define rf(i,e,s) for(long long int i=e-1;i>=s;i--)
#define pb push_back
#define eb emplace_back


template <class T>
void print_v(vector<T> &v) { cout << "{"; for (auto x : v) cout << x << ","; cout << "\b}"; }


#define PI 3.1415926535897932384626433832795
#define read(type) readInt<type>()
ll min(ll a,int b) { if (a<b) return a; return b; }
ll min(int a,ll b) { if (a<b) return a; return b; }
ll max(ll a,int b) { if (a>b) return a; return b; }
ll max(int a,ll b) { if (a>b) return a; return b; }
ll gcd(ll a,ll b) { if (b==0) return a; return gcd(b, a%b); }
ll lcm(ll a,ll b) { return a/gcd(a,b)*b; }
string to_upper(string a) { for (int i=0;i<(int)a.size();++i) if (a[i]>='a' && a[i]<='z') a[i]-='a'-'A'; return a; }
string to_lower(string a) { for (int i=0;i<(int)a.size();++i) if (a[i]>='A' && a[i]<='Z') a[i]+='a'-'A'; return a; }
bool prime(ll a) { if (a==1) return 0; for (int i=2;i<=round(sqrt(a));++i) if (a%i==0) return 0; return 1; }
void yes() { cout<<"YES\n"; }
void no() { cout<<"NO\n"; }

typedef long int int32;
typedef unsigned long int uint32;
typedef long long int int64;
typedef unsigned long long int  uint64;






#define f first
#define s second
#define endl '\n'
#define sp <<" "<<
#define pb push_back
#define fora(a) for(auto it:a)
#define gcd(a,b) __gcd(a,b)
#define lcm(a,b) (a*(b/gcd(a,b)))
#define all(a) (a).begin(),(a).end()
#define rall(a) (a).rbegin(),(a).rend()
#define test int tc; cin>>tc; while(tc--)
#define forn(i,n) for(auto i=0; i<n; i++)
#define printv(a) {for(auto u:a) cout<<u<<" "; cout<<endl;}
#define printm(a) {for(auto u:a) cout<<u.f sp u.s<<endl;}
#define op() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define fori(a,b,c) {for(a = c.begin(); a!=b; a++) cout<< *a<< " "; cout<<endl;}
#define fraction(a) cout.unsetf(ios::floatfield); cout.precision(a); cout.setf(ios::fixed,ios::floatfield);

typedef unsigned long long ull;
typedef vector<ll> vl;
typedef vector<bool> vb;
typedef vector<char> vc;
typedef vector<string> vs;
typedef vector<int>::iterator vit;
const double eps = 1e-9;

const int NMAX = 100005;

const int MAXX=200000;


const int M0=998244353;

struct N{int l;int r;int d0;int d1;int lc;int rc;};
vector<N> T;
vi A;
int I=0;
int b(int l,int r){
 int i=I++;
 T.push_back({l,r,0,0,-1,-1});
 if(l==r){
  T[i].d0=A[l-1];
  T[i].d1=A[l-1];
 } else{
  int n=r-l+1;
  int m=n/2;
  int mid=l+m-1;
  T[i].lc=b(l,mid);
  T[i].rc=b(mid+1,r);
  T[i].d0= T[T[i].lc].d1 < T[T[i].rc].d1 ? T[T[i].lc].d1 : T[T[i].rc].d1;
  T[i].d1= T[T[i].lc].d0 > T[T[i].rc].d0 ? T[T[i].lc].d0 : T[T[i].rc].d0;
 }
 return i;
}
void u(int i,int p,int v){
 N &x=T[i];
 if(x.l==x.r){
  x.d0=v;
  x.d1=v;
  return;
 }
 int mid=T[x.lc].r;
 p<=mid ? u(x.lc,p,v) : u(x.rc,p,v);
 x.d0= T[x.lc].d1 < T[x.rc].d1 ? T[x.lc].d1 : T[x.rc].d1;
 x.d1= T[x.lc].d0 > T[x.rc].d0 ? T[x.lc].d0 : T[x.rc].d0;
}

int main(){
    ios::sync_with_stdio(false);                                               \
    cin.tie(NULL);                                                             \
    cout.tie(NULL);                                                            \
    
	int n,q;
 cin>>n>>q;
 A.resize(n);
 loop(i,0,n) cin>>A[i];
 T.reserve(4*n);
 I=0;
 int r=b(1,n);
 while(q--){
  int i,v,p;
  cin>>i>>v>>p;
  u(r,i,v);
  cout<<(p==0 ? T[r].d0 : T[r].d1)<<"\n";
 }
   
    
    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 15:54:01
Judged At
2025-04-06 15:54:01
Judged By
Score
100
Total Time
190ms
Peak Memory
12.32 MiB