以下代码为高输入约束提供 SGSEGV 错误:1<=t<=5
1<=n<=10^6
-10<= z <= 10 我已经声明了足够的内存量。即使在那时我在全球范围内声明了大内存我也收到了一个 sigsegv 错误。无法弄清楚原因。有任何提示吗?
#include<bits/stdc++.h>
#define _ ios_base::sync_with_stdio(0);cin.tie(0);
using namespace std;
int s[1000000];
int main(){_
int t;
cin>>t;
while(t--){
int n,i,z,sum=0,p,cnt=0;
unsigned long long int ans=0;
cin>>n;
for(i=0;i<n;i++){
cin>>z;
sum+=z;
s[i]=sum;
}
sort(s,s+n);
i=0;
while(i<n){
p=s[i];
cnt=0;
while(s[i]==p){
cnt++;
i++;
}
ans=ans+(((unsigned long long)cnt*(cnt-1))>>1);
}
cnt=0;
for(int i=0;i<n && s[i]<=0;i++){
if(s[i]==0){
cnt++;
}
}
ans+=cnt;
cout<<ans<<"\n";
}
return 0;
}