#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 time | Memory | Grader output |
|---|
| Fetching results... |