Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std ;
- #define M 500000
- #define pii pair<int , int >
- #define mp make_pair
- #define mem(x , y) memset(x , y , sizeof x)
- #define pf printf
- #define sf scanf
- #define sf1(a ) scanf("%d",&a)
- #define pb push_back
- #define sf2(a, b) scanf("%d%d",&a ,&b)
- #define rep(i,n) for(i = 0 ; i< n ;i++ )
- void tree[2*M] , arr[M] ;
- void build(int node ,int r1 , int r2){
- if(r1 == r2)
- {
- tree[node] = arr[r1] ;
- return r1;
- }
- int left , right , mid;
- left = node*2 ;
- right = node*2+1 ;
- mid = (r1 + r2)/2 ;
- build(left , r1 , mid);
- build(right ,mid+1 , r2);
- tree[node] = tree[left] + tree[right];
- }
- int query(int node , int r1 , int r2 , int i , int j ){
- if(r1 > j || i > r2) return 0 ;
- if( r1 >= i && r2 <= j ) return tree[node];
- int left , right , mid ;
- left = node*2 ;
- right = node*2 + 1;
- mid = (r1+ r2 )/ 2;
- return query(left , r1 , mid,i ,j) + query(right , mid+1 , r2 , i , j );
- }
- void query(int node , int r1 , int r2 , int i , int value ){
- if(r1 > i || i > r2) return 0 ;
- if( r1 >= i && r2 <= i ) return tree[node];
- int left , right , mid ;
- left = node*2 ;
- right = node*2 + 1;
- mid = (r1+ r2 )/ 2;
- query(left , r1 , mid,i , value);
- query(right , mid+1 , r2 , i , vlaue );
- tree[node] = tree[left ] + tree[right];
- }
- int main(){
- // pf("hello world\n");
- return 0 ;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement