Suggest a feature
×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: C++
Posted by: Ivan Belonogov
Added: Feb 16, 2018 10:45 AM
Views: 8
Tags: no tags
  1. struct Fen {
  2.     vector<int> data;
  3.     int n;
  4.  
  5.     Fen(int sz) {
  6.         n = sz;
  7.         data.resize(n + 1);
  8.     }
  9.  
  10.     void add(int p, int x) {
  11.         for (; p < n; p |= (p + 1)) {
  12.             data[p + 1] += x;
  13.         }
  14.     }
  15.  
  16.     int get(int r) {
  17.         int sum = 0;
  18.         for (; r > 0; r &= (r - 1)) {
  19.             sum += data[r];
  20.         }
  21.         return sum;
  22.     }
  23.  
  24.     int get(int l, int r) {
  25.         return get(r) - get(l);
  26.     }
  27. };
  28.