#include <bits/stdc++.h>
#define DIM 100010
using namespace std;
struct segment_tree{
int mini,maxi,lazy;
} aint[DIM*4];
int n,x,nr,i;
void update_lazy (int nod, int st, int dr){
if (!aint[nod].lazy)
return;
if (st != dr){
int fiu_st = nod<<1, fiu_dr = (nod<<1)|1;
aint[fiu_st].mini += aint[nod].lazy;
aint[fiu_st].maxi += aint[nod].lazy;
aint[fiu_st].lazy += aint[nod].lazy;
aint[fiu_dr].mini += aint[nod].lazy;
aint[fiu_dr].maxi += aint[nod].lazy;
aint[fiu_dr].lazy += aint[nod].lazy;
}
aint[nod].lazy = 0;
}
void update (int nod, int st, int dr, int x, int y, int val){
update_lazy (nod,st,dr);
if (x <= st && dr <= y){
aint[nod].maxi += val;
aint[nod].mini += val;
aint[nod].lazy += val;
update_lazy (nod,st,dr);
return;
}
int mid = (st+dr)>>1;
if (x <= mid)
update (nod<<1,st,mid,x,y,val);
if (y > mid)
update ((nod<<1)|1,mid+1,dr,x,y,val);
update_lazy (nod<<1,st,mid);
update_lazy ((nod<<1)|1,mid+1,dr);
aint[nod].mini = min (aint[nod<<1].mini,aint[(nod<<1)|1].mini);
aint[nod].maxi = max (aint[nod<<1].maxi,aint[(nod<<1)|1].maxi);
}
int main (){
//ifstream cin ("date.in");
//ofstream cout ("date.out");
cin>>n;
for (i=1;i<=n;i++){
cin>>x>>nr;
if (nr == 1)
update (1,1,n,1,x,1);
else update (1,1,n,1,x,-1);
if (aint[1].mini >= 0)
cout<<">\n";
else {
if (aint[1].maxi <= 0)
cout<<"<\n";
else cout<<"?\n";
}
}
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
364 KB |
Output is correct |
2 |
Correct |
1 ms |
364 KB |
Output is correct |
3 |
Correct |
2 ms |
364 KB |
Output is correct |
4 |
Correct |
1 ms |
364 KB |
Output is correct |
5 |
Correct |
2 ms |
364 KB |
Output is correct |
6 |
Correct |
2 ms |
364 KB |
Output is correct |
7 |
Correct |
3 ms |
364 KB |
Output is correct |
8 |
Correct |
4 ms |
364 KB |
Output is correct |
9 |
Correct |
4 ms |
364 KB |
Output is correct |
10 |
Correct |
29 ms |
748 KB |
Output is correct |
11 |
Correct |
187 ms |
2412 KB |
Output is correct |
12 |
Correct |
309 ms |
4460 KB |
Output is correct |
13 |
Correct |
316 ms |
4460 KB |
Output is correct |
14 |
Correct |
323 ms |
4648 KB |
Output is correct |
15 |
Correct |
319 ms |
4332 KB |
Output is correct |
16 |
Correct |
324 ms |
4460 KB |
Output is correct |
17 |
Correct |
317 ms |
4376 KB |
Output is correct |
18 |
Correct |
322 ms |
4460 KB |
Output is correct |
19 |
Correct |
322 ms |
4460 KB |
Output is correct |
20 |
Correct |
319 ms |
4460 KB |
Output is correct |
21 |
Correct |
317 ms |
4460 KB |
Output is correct |
22 |
Correct |
323 ms |
4588 KB |
Output is correct |
23 |
Correct |
321 ms |
4460 KB |
Output is correct |
24 |
Correct |
320 ms |
4332 KB |
Output is correct |
25 |
Correct |
319 ms |
4588 KB |
Output is correct |