hiho week 233 register

Ended

Participants:96

Verdict:Accepted
Score:100 / 100
Submitted:2018-12-17 12:58:08

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<bits/stdc++.h>
#define ll long long
using 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;
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX