rt 不知道哪被卡了
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,T,L,R,d,W,w,a[200010];
int t1[200010],t2[200010],lg[200010];
void add1(int x,int k){
for(;x<=n;x+=(x&(-x))) t1[x]+=k;
return ;
}
void add2(int x,int k){
for(;x<=n;x+=(x&(-x))) t2[x]+=k;
return ;
}
int solve(int cnt){
int res=0,now1=0,now2=0;
for(long long j=lg[n];j>=0;j--){
if(((now1+t1[res+(1ull<<j)])*(res+(1ull<<j)+1)-(t2[res+(1ull<<j)]+now2))*(1ull<<cnt)<w){
res+=(1ull<<j);
now1+=t1[res];
now2+=t2[res];
}
}
return res;
}
signed main(){
// freopen("a.in","r",stdin);
// freopen("a.out","w",stdout);
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n>>T>>W;
int sum=0;
for(int i=1;i<=n;i++){
cin>>a[i];
sum+=a[i];
add1(i,a[i]-a[i-1]);
add2(i,i*(a[i]-a[i-1]));
}
lg[0]=-1;
for(int i=1;i<=n;i++) lg[i]=lg[i>>1]+1;
while(T--){
cin>>L>>R>>d;
sum+=(R-L+1)*d;
w=W;
int cnt=0,del=1;
while(del*sum<w){
w-=del*sum;
cnt++;
del<<=1ull;
}
add1(L,d),add1(R+1,-d);
add2(L,(L)*d),add2(R+1,(R+1)*(-d));
cout<<cnt*n+solve(cnt)<<'\n';
}
return 0;
}