#include #include using namespace std; using namespace atcoder; using ll=long long; using pl=pair; pair op(pair x,pair y){ return make_pair(x.first+y.first,x.second+y.second); } pair e(){ return make_pair(0,0); } int main() { int n,q; cin>>n>>q; vector a(n); for(int i=0;i>a[i]; vector l(q),r(q),x(q); for(int i=0;i>l[i]>>r[i]>>x[i]; vector> v(n+q); for(int i=0;i ans(q); { segtree st(n); for(int i=0;i=n){ int j=v[i].second-n; auto [s,t]=st.prod(l[j]-1,r[j]); ans[j]+=x[j]*t-s; }else{ st.set(v[i].second,make_pair(v[i].first,1)); } } } sort(v.rbegin(),v.rend()); { segtree st(n); for(int i=0;i=n){ int j=v[i].second-n; auto [s,t]=st.prod(l[j]-1,r[j]); ans[j]+=s-x[j]*t; }else{ st.set(v[i].second,make_pair(v[i].first,1)); } } } for(int i=0;i