Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int tree[30000000];
- inline void update(int node,int i,int j,int pos)
- {
- if(pos<i || pos>j) return;
- if(i==j) // && pos==i
- {
- tree[node]++;
- return;
- }
- update(node<<1,i,(i+j)>>1,pos);
- update((node<<1)+1,((i+j)>>1)+1,j,pos );
- tree[node]=tree[node<<1]+tree[(node<<1)+1];
- }
- inline int query(int node,int x,int y,int i,int j)
- {
- if(j<x || i>y)
- return 0;
- if(x>=i && y<=j)
- return tree[node];
- return query(node<<1,x,(x+y)>>1,i,j)+query((node<<1)+1,((x+y)>>1)+1,y,i,j);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement