我和大佬的差距在于:大佬6分钟AC,而我2个小时也想不出来
这几天一点状态没有,浑浑噩噩
代码:
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll a[200005];
ll sum[200005];
map<ll,ll>Map;
int main()
{
ll n;
scanf("%lld",&n);
for(int i=1;i<=n;i++)
{
scanf("%lld",&a[i]);
}
ll p=-1,ans=0;
Map[0]=0;
for(int i=1;i<=n;i++)
{
//Map[sum [i]]++;
sum[i]=sum[i-1]+a[i];
if(Map.count(sum[i]))
{
p=max(p,Map[sum[i]]);
}
ans+=i-p-1;
Map[sum[i]]=i;
}
printf("%lld\n",ans);
return 0;
}