这题咋做呀?我只有29分。求大佬指导。
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int n,q,ans,a[1000010];
int main(){
scanf("%d%d",&n,&q);
for(int i=1;i<=n;i++){
int x;
scanf("%d",&x);
a[i]=a[i-1]+x;
}
while(q--){
int l,r,k;
scanf("%d%d%d",&l,&r,&k);
ans=0x3fffffff;
int m=r-l+1;
if(k==m-1){
ans=m-(a[r]-a[l-1]);
}
if(k-(a[r]-a[l-1])<0&&k-(a[r]-a[l-1])>-m){
ans=min(ans,abs(k-(a[r]-a[l-1])));
}
if(k-(a[r]-a[l-1])>=0&&k-(a[r]-a[l-1])<m){
ans=min(ans,k-(a[r]-a[l-1]));
}
printf("%d\n",ans==0x3fffffff?-1:ans);
}
return 0;
}