제출 #1368111

#제출 시각아이디문제언어결과실행 시간메모리
1368111al95ireyizDeda (COCI17_deda)C++20
140 / 140
51 ms7572 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define len(x) (ll)x.size()
const ll inf = 1e9, infl = 1e18;
const ll MOD = 1e9 + 7;
const ll maxn = 2e5 + 5;
ll n, m, k = 0;

ll tree[maxn * 4];
void upd(ll x, ll y, ll l = 1, ll r = n, ll v = 1){
  if(l == r) return tree[v] = y, void();
  ll md = (l + r) >> 1;
  if(x <= md) upd(x, y, l, md, v << 1);
  else upd(x, y, md + 1, r, v << 1 | 1);
  tree[v] = min(tree[v << 1], tree[v << 1 | 1]);
}
ll get(ll x, ll y, ll l = 1, ll r = n, ll v = 1){
  if(r < x or tree[v] > y) return - 1;
  if(l == r) return l;
  ll md = (l + r) >> 1, e = get(x, y, l, md, v << 1);
  if(e != - 1) return e;
  return get(x, y, md + 1, r, v << 1 | 1);
}
void _() {
  cin >> n >> m;
  for(ll i = 1; i <= n * 4; i ++) tree[i] = inf;
  while(m --){
    char c;
    ll x, y, e;
    cin >> c >> x >> y;
    if(c == 'M'){
      upd(y, x);
    } else{
      e = get(y, x);
      cout << e << '\n';
    }
  }
}
signed main() {
  cin.tie(0)->sync_with_stdio(0);
  ll t = 1;
  // cin >> t;
  while(t --) _();
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…