#include <bits/stdc++.h>
const int mod = (int)1e09 + 7;
int in(void) {
  int i;
  scanf("%d", &i);
  return i;
}
long long llin(void) {
  long long i;
  scanf("%lld", &i);
  return i;
}
double din(void) {
  double i;
  scanf("%lf", &i);
  return i;
}
void chin(char s[]) { scanf("%s", s); }
void print(int a) { printf("%d\n", a); }
void llprint(long long a) { printf("%lld\n", a); }
void dprint(double a) { printf("%.10f\n", a); }
void print2(int a, int b) { printf("%d %d\n", a, b); }
long long max(long long a, long long b) { return a > b ? a : b; }
long long min(long long a, long long b) { return a < b ? a : b; }
double dmax(double a, double b) { return a > b ? a : b; }
int cmp(const void *a, const void *b) { return *(int *)a - *(int *)b; }
int cmp_r(const void *a, const void *b) { return *(int *)b - *(int *)a; }
int char_cmp(const void *a, const void *b) {
  return strcmp((char *)a, (char *)b);
}
int char_cmp_r(const void *a, const void *b) {
  return strcmp((char *)b, (char *)a);
}
void swap(int *a, int *b) {
  int t = *a;
  *a = *b;
  *b = t;
}
long long gcd(long long x, long long y) { return x % y ? gcd(y, x % y) : y; }
long long lcm(long long x, long long y) { return x / gcd(x, y) * y; }
long long x[200000 + 1], y[200000 + 1];
long long modpow(long long x, long long n) {
  long long result = 1;
  while (n > 0) {
    if ((n & 1) == 1) {
      result = (result * x) % mod;
    }
    x = (x * x) % mod;
    n >>= 1;
  }
  return result;
}
void make_fact_table(int n) {
  int i;
  x[0] = y[0] = 1;
  for (i = 1; i <= n; i++) {
    x[i] = (long long)(x[i - 1] * i) % mod;
    y[i] = modpow(x[i], mod - 2);
  }
}
long long mod_nCr(int n, int r) { return x[n] * y[n - r] % mod * y[r] % mod; }
int main(void) {
  int n = in(), a, i, s[200001] = {}, c = 1;
  long long ans = 0;
  make_fact_table(n);
  for (i = 0; i < n; i++) {
    a = in();
    if (!i)
      s[i] = a;
    else
      s[i] = s[i - 1] + a;
  }
  s[n] = 0;
  qsort(s, n + 1, sizeof(int), cmp);
  for (i = 0; i < n + 1; i++) {
    if (s[i] == s[i + 1])
      c++;
    else {
      ans += mod_nCr(c, 2);
      c = 1;
    }
  }
  llprint(ans);
  return 0;
}
