#include #define int long long using namespace std; #define fi first #define sc second #define pii pair #define pdd pair #define pb push_back #define umap unordered_map #define mset multiset #define pq priority_queue #define ull unsigned long long #define i128 __int128 #define ld long double #define fixs fixed<>1; build(ls(u),l,mid,a),build(rs(u),mid+1,r,a),pushup(u); } void pushdown(int u){ if(tr[u].l==tr[u].r) return ; int k=tr[u].tag; tr[u].tag=0,tr[ls(u)].add(k),tr[rs(u)].add(k); } void upd(int u,int l,int r,int k){ if(tr[u].tag) pushdown(u); if(ir(l,r,tr[u].l,tr[u].r)) tr[u].add(k); else if(!ofr(l,r,tr[u].l,tr[u].r)) upd(ls(u),l,r,k),upd(rs(u),l,r,k),pushup(u); } pii query(int u,int l,int r){ if(tr[u].tag) pushdown(u); if(ir(l,r,tr[u].l,tr[u].r)) return tr[u].maxx; else if(!ofr(l,r,tr[u].l,tr[u].r)) return max(query(ls(u),l,r),query(rs(u),l,r)); else return {0,0}; } }sgt; int n,m,a[maxn]; void solve(){ cin>>n; for(int i=1;i>a[i],a[i]+=(n-i)*3; cin>>m,sgt.build(1,1,n-1,a); while(m--){ int l,r,x; cin>>l>>r>>x,sgt.upd(1,l,r,x); pii p=sgt.query(1,1,n-1); cout<>t; while(t--) solve(); return 0; } /* Samples input: output: THINGS TODO: 检查freopen,尤其是后缀名 检查空间 检查调试语句是否全部注释 */