#include using namespace std; #define int long long const int N=1e5+10,T=3; int n,a[N]; int mx[N<<2],lazy[N<<2]; #define mid (l+r)/2 #define ls u<<1 #define rs u<<1|1 inline void pushup(int u){ mx[u]=max(mx[ls],mx[rs]); } inline void pushdown(int u){ mx[ls]+=lazy[u]; lazy[ls]+=lazy[u]; mx[rs]+=lazy[u]; lazy[rs]+=lazy[u]; lazy[u]=0; } void build(int u,int l,int r){ lazy[u]=0; if(l==r){ mx[u]=a[l]+(n-l)*T; return; } build(ls,l,mid); build(rs,mid+1,r); pushup(u); return; } void update(int u,int l,int r,int ql,int qr,int d){ if(ql<=l&&r<=qr){ mx[u]+=d; lazy[u]+=d; return; } if(qr>n; for(int i=1;i<=n-1;i++) cin>>a[i]; build(1,1,n-1); int q;cin>>q; while(q--){ int l,r,d;cin>>l>>r>>d; update(1,1,n-1,l,r,d); cout<