#include <bits/stdc++.h>
using namespace std;
template <class T>
inline bool chmax(T& a, T b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
inline bool chmin(T& a, T b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
const long long INF = 1LL << 60;
int main(void) {
  int a, j, n, i, ans = 0;
  cin >> n;
  long long int cumsum[n + 2];
  cumsum[n + 1] = INF;
  cumsum[0] = 0;
  vector<int> v[2];
  vector<int>::iterator it;
  for (i = 1; i <= n; i++) {
    cin >> a;
    cumsum[i] = a + cumsum[i - 1];
  }
  sort(cumsum, cumsum + n + 1);
  for (i = 0; i < n + 2; i++) {
    j = i + 1;
    while (cumsum[i] == cumsum[j]) j++;
    ans += (j - i - 1) * (j - i) / 2;
    i += j - i - 1;
  }
  cout << ans << endl;
  return 0;
}
