Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>using namespace std;const int mod = 1e9+7;const int maxn = 1e5+7;int A[maxn];int sum[maxn];int f[maxn];void solve(int n) {f[0] = 0;sum[0] = 0;unordered_map<int,int>mp;for (int i = 1; i <= n; ++i) {sum[i] = sum[i-1] + A[i];}mp[0] = 1;int pre = 1;for (int i = 1; i <= n; ++i) {f[i] = (pre - mp[sum[i]] + mod) % mod;mp[sum[i]] = (mp[sum[i]] + f[i]) % mod;pre = (pre + f[i]) % mod;}cout << f[n] << endl;}int main() {