Submission #1319971

#TimeUsernameProblemLanguageResultExecution timeMemory
1319971Jawad_Akbar_JJWeighting stones (IZhO11_stones)C++20
100 / 100
25 ms2284 KiB
#include <iostream> using namespace std; const int N = (1<<17) + 1; int pre[N], Mx[N<<1], Mn[N<<1], val[N<<1]; void Add(int l, int r, int v, int cur = 1, int st = 1, int en = N){ if (l >= en or r <= st) return; if (l <= st and r >= en){ val[cur] += v; return; } int lc = cur + cur, rc = lc + 1, mid = (st + en) / 2; Add(l, r, v, lc, st, mid); Add(l, r, v, rc, mid, en); Mn[cur] = min(Mn[lc] + val[lc], Mn[rc] + val[rc]); Mx[cur] = max(Mx[lc] + val[lc], Mx[rc] + val[rc]); } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int n; cin>>n; for (int i=1, a, b;i<=n;i++){ cin>>a>>b; Add(1, a + 1, (b == 1 ? 1 : -1)); if (Mn[1] == 0) cout<<'>'; else if (Mx[1] == 0) cout<<'<'; else cout<<'?'; cout<<'\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...