rt,调了半小时感觉没什么问题,wa test10
贪心做的
ll T,n,a[maxn],ans;
ll sum[maxn];
map<ll,int>mp;
inline ll read(void)
{
ll num,sign=1;char c;
while(!isdigit(c=getchar()))if(c=='-')sign=0;num=c-'0';
while(isdigit(c=getchar()))num=(num<<1)+(num<<3)+c-'0';
return sign?num:-num;
}
signed main(void)
{
n=read();
for(register int t,ls=0,i=1;i<=n;++i)
{
a[i]=read();
sum[i]=sum[i-1]+a[i];
if(!sum[i])ls=i-1,++ans;
else if((t=mp[sum[i]])&&t>=ls)ls=i-1,++ans;
mp[sum[i]]=i;
}
cout<<ans<<endl;
}