rt,没有看特殊性质但没有特殊性质的点全挂了TT
#include<bits/stdc++.h>
using namespace std;
int a[1000005];
int b[1000005];
int sum[1000005];
int xg(int,int,int);
int xg(int z,int y,int key){
if(key==y-z){
if(y-z==b[y]-b[z]+a[z]||y-z+1==b[y]-b[z]+a[z])return 0;
int ans=key-b[y]-b[z]+a[z];
if(key-b[y]-b[z]+a[z]<0)
ans*=-1;
return ans;
}
if(key<y-z){
return max(b[y]-b[z]+a[z]-key,-1*(b[y]-b[z]+a[z]-key));
}
else return -1;
}
int main(){
int n,q;
cin>>n>>q;
for(int i=1;i<=n;i++){
cin>>a[i];
if(i!=1)
b[i]=b[i-1]+a[i];
else
b[i]=a[i];
}
for(int i=1;i<=q;i++){
int l,r,k;
cin>>l>>r>>k;
cout<<xg(l,r,k)<<endl;
}
return 0;
}