#include #include #include using namespace std; using ll =long long; vector SumVec(vector base){ vector res; res.resize(base.size()+1); for(int i=0;i> node; vector> nodeSum; ll n,sz,log; SegVec() : SegVec(0){} SegVec(ll N) : SegVec(vector(N,0)){} SegVec(vector vec) : n(vec.size()){ sz=1; log=0; while(n>sz){ sz*=2; log++; } node.resize(2*sz); nodeSum.resize(2*sz); for(ll i=0;i0;i--){ for(ll j=0;j0;i--){ nodeSum[i]=SumVec(node[i]); } } void dbg(ll p,int k=1){ cout << "dbg: "<< p << ": "; cout << "{ "; for(auto v:node[p]){ cout << v <<","; } cout << "} "; if(k){ cout << endl; }else{ cout <<", "; } return; } void dbg_all(){ for(ll i=0;i<=log;i++){ for(ll j=(1LL<>= 1; r >>= 1; } return ans; } }; void solve(){ int N,Q;cin >> N >> Q; vector A(N); for(auto &v:A){ cin >> v; } SegVec seg(A); for(int i=0;i> l >> r >>x; l--; cout << seg.get(l,r,x) << endl; } } int main(){ solve(); return 0; }