,int r) { if (b<=l || r<=a) return 0ll; if (a<=l && r<=b) return sqrsumv[k]; pushdown(k,l,r); return query(a,b,k*2+1,l,l+r>>1)+query(a,b,k*2+2,l+r>>1,r); } int main() { #ifdef FCBRUCE freopen(/home/fcbruce/code/t,r,stdin); #endif // FCBRUCE int T_T,__=0; scanf(%d,&T_T); while (T_T--) { int n,m; scanf(%d%d,&n,&m); build(0,0,n); printf(Case %d: ,++__); int op,a,b,v; while (m--) { scanf(%d,&op); switch (op) { case 0: scanf(%d%d%d,&a,&b,&v); a--; update_set(a,b,v,0,0,n); break; case 1: scanf(%d%d%d,&a,&b,&v); a--; update_add(a,b,v,0,0,n); break; case 2: scanf(%d %d,&a,&b); a--; printf(lld ,query(a,b,0,0,n)); break; } } } return 0; }
?
|