58pts #WA0,5,8求救> <
查看原帖
58pts #WA0,5,8求救> <
1414548
miss_zhangxh楼主2024/11/11 19:00

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;
}
2024/11/11 19:00
加载中...