Comparing sensitive data, confidential files or internal emails?

Most legal and privacy policies prohibit uploading sensitive data online. Diffchecker Desktop ensures your confidential information never leaves your computer. Work offline and compare documents securely.

Untitled Diff

Created Diff never expires
7 removals
27 lines
7 additions
27 lines
// Fenwick tree class
// BIT class
class FenwickTree {
class BIT {
// Array to store the Fenwick tree
// Array to store the BIT
vector<int> tree;
vector<int> tree;


public:
public:
// Constructor to create an empty Fenwick tree with the given size
// Constructor to create an empty BIT with the given size
FenwickTree(int size) : tree(size + 1) { }
BIT(int size) : tree(size + 1) { }


// Add the given value at the given index in the Fenwick tree
// Add the given value at the given index in the BIT
void add(int index, int value) {
void add(int index, int value) {
while (index < tree.size()) {
while (index < tree.size()) {
tree[index] += value;
tree[index] += value;
index += index & -index;
index += index & -index;
}
}
}
}


// Query the Fenwick tree for the prefix sum at the given index
// Query the BIT for the prefix sum at the given index
int query(int index) {
int query(int index) {
int sum = 0;
int sum = 0;
while (index > 0) {
while (index > 0) {
sum += tree[index];
sum += tree[index];
index -= index & -index;
index -= index & -index;
}
}
return sum;
return sum;
}
}
};
};