// 模板水题 敌兵布阵 HDU - 1166
// 模板中档题 HDU - 5147
class TreeArray{
public:
const static int cmaxn = 1e5; /// Todo: 修改区间的最大值
int cdate[cmaxn];
int max_sz; // 表示元素的个数 在init初始化
void init(int size) {
memset(cdate, 0, sizeof(cdate));
max_sz = size; // 初始化本次样例的元素的个数
}
void init(int size, int array[], int len) {
memcpy(cdate, array, sizeof(int)*len);
max_sz = size;
}
inline int lowbit(int idx) { return idx & -idx; }
void update(int idx, int val) {
for (; idx<=max_sz; idx+=lowbit(idx))
cdate[idx] += val;
}
int getsum(int idx) {
int res = 0;
for (; idx>0; idx-=lowbit(idx))
res += cdate[idx];
return res;
}
int getsum(int left, int right) {
return getsum(right) - getsum(left-1);
}
};