struct T{ ll vmin; ll vout; }; T segtree_ph_func(T a,T b){ T r; r.vmin=min(a.vmin,a.vout+b.vmin); r.vout=a.vout+b.vout; return r; } { segtree_pht; t.malloc(1<<18,1); ll@q,@L; rep(i,L)t[i]=T{0,0}; t[L]=T{2d14,2d14}; t.build(); rep(q){ ll@(a,l,r,c); T tl=t[l]; tl.vmin=tl.vout+=a&1?c:-c; t.change(l,tl); T tr=t[r]; tr.vmin=tr.vout-=a&1?c:-c; t.change(r,tr); wt(t.val[1].vmin); } }