struct segt{ ll a,b; }; segtree_pht; inline segt segtree_ph_func(segt a,segt b){ return {max(a.a,a.b+b.a),a.b+b.b}; } { ll@n; t.walloc(n,1); rep(i,n-1){ ll@u; t[i+1]=segt{u-3*i,0}; } t[0].b=(n-1)*3; t.build(); ll@m; rep(m){ ll@l,@r,@d; --l; t.change(l,{t[l].a,t[l].b+d}); t.change(r,{t[r].a,t[r].b-d}); wt(t.val[1].a); } }