제출 #1314639

#제출 시각아이디문제언어결과실행 시간메모리
1314639michael12돌 무게 재기 (IZhO11_stones)C++20
100 / 100
113 ms6768 KiB
#include<bits/stdc++.h> #define ff first #define ss second #define pb push_back #define mp make_pair #define int long long using namespace std; const int maxn = 1e6 + 2; int tree[4 * maxn]; int mx[4 * maxn]; int mn[4 * maxn]; void update(int node, int start, int end, int id, int val){ if(start == end){ tree[node] = val; mx[node] = val; mn[node] = val; } else{ int mid = (start + end) / 2; if(mid >= id){ update(2 * node, start, mid, id, val); } else{ update(2 * node + 1, mid + 1, end, id, val); } tree[node] = tree[2 * node] + tree[2 * node + 1]; mn[node] = min(mn[2 * node] + tree[2 * node + 1], mn[2 * node + 1]); mx[node] = max(mx[2 * node] + tree[2 * node + 1], mx[2 * node + 1]); } } signed main(){ int n; cin >> n; for(int i = 0; i < n; i++){ int x, y; cin >> x >> y; x--; if(y == 1){ update(1, 0, n - 1, x, 1); } else{ update(1, 0, n - 1, x, -1); } if(mn[1] >= 0) cout << ">" << endl; else if(mx[1] <= 0) cout << "<" << endl; else{ cout << "?" << endl; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...