Submission #676148

#TimeUsernameProblemLanguageResultExecution timeMemory
676148Trisanu_DasDeda (COCI17_deda)C++17
0 / 140
59 ms2900 KiB
#include <bits/stdc++.h> using namespace std; const int mxN=2e5; int n, q, a, b, segtree[1<<19]; char op; void update(int s, int x, int i=1, int l=0, int r=n-1) { segtree[i]=min(x, segtree[i]); if(l==r) return; int m=(l+r)/2; if(s<=m) update(s, x, 2*i, l, m); else update(s, x, 2*i+1, m+1, r); } int query(int s, int x, int i=1, int l=0, int r=n-1) { if(segtree[i]>x) return -2; if(l==r) return l; int m=(l+r)/2, e = -2; if(s<=m) e = query(s, x, 2*i, l, m); if(r==-2) e = query(s, x, 2*i+1, m+1, r); return e; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> q; memset(segtree, 0x3f, sizeof(segtree)); while(q--) { cin >> op >> a >> b, --b; if(op=='M') update(b, a); else cout << query(b, a)+1 << "\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...