#include <bits/stdc++.h>
using namespace std;
struct cww {
  cww() {
    ios::sync_with_stdio(false);
    cin.tie(0);
  }
} star;
const long long INF = numeric_limits<long long>::max();
template <class T>
bool chmax(T &a, const T &b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool chmin(T &a, const T &b) {
  if (b < a) {
    a = b;
    return 1;
  }
  return 0;
}
int main() {
  int N;
  cin >> N;
  vector<int> A(N), S(N + 1);
  S[0] = 0;
  for (int i = 0; i < (N); i++) {
    cin >> A[i];
    S[i + 1] = S[i] + A[i];
  }
  map<int, int> M;
  int ans = 0;
  for (int i = 0; i < (N + 1); i++) {
    M[S[i]]++;
  }
  for (auto i : M) {
    ans += ((i.second - 1) * i.second) / 2;
  }
  cout << ans;
  return 0;
}
