Lang:G++
Edit123456789101112131415161718#include<bits/stdc++.h>#define ll long longusing namespace std;const int N=200005;const int mod=1e9+7;ll f[N],n,m,s[N],k,tmp[N];map<ll,ll> h;int main(){f[0]=tmp[0]=h[0]=1;scanf("%lld",&n);for(int i=1,x;i<=n;i++)scanf("%d",&x),s[i]=s[i-1]+x;for(int i=1;i<=n;i++){f[i]=(f[i]+tmp[i-1]-h[s[i]])%mod;tmp[i]=(tmp[i-1]+f[i])%mod;(h[s[i]]+=f[i])%=mod;} cout<<(f[n]%mod+mod)%mod<<endl;return 0;}