支持区间加区间和的那种。
码风抽象,见谅
template<typename T>struct fenwick{
private:
vector<array<T,2>>tr;
void _add(int x,T c,int t){for(;x<tr.size();x+=x&-x)tr[x][t]+=c;}
void __add(int x,T c){_add(x,c,0),_add(x,x*c,1);}
int _sum(int x,int t){int r=0;for(;x;x-=x&-x)r+=tr[x][t];return r;}
int __sum(int x){return (x+1)*_sum(x,0)-_sum(x,1);}
public:
fenwick(int n){tr.resize(n+1);}
void add(int l,int r,T c){__add(l+1,c),__add(r+2,-c);}
int sum(int l,int r){return __sum(r+1)-__sum(l);}
};