Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.49 KB | None | 0 0
  1. class BinaryIndexTree{
  2.     vector<int> tree;
  3.     int n;
  4. public:
  5.     BinaryIndexTree(vector<int> &data){
  6.         n = data.size();
  7.         tree = vector<int>(n, 0);
  8.         for(int i = 0; i < n; i++) update(i, data[i]);
  9.     }
  10.    
  11.     void update(int x, int delta){
  12.         for(int i = x; i < n; i = i | (i + 1)) tree[i] += delta;
  13.     }
  14.    
  15.     int sum(int x){
  16.         int res = 0;
  17.         for(int i = x; i >= 0; i = (i & (i + 1)) - 1) res += tree[i];
  18.         return res;
  19.     }
  20. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement