#include <iostream>
#include <algorithm>
using namespace std;

int main() {
    // データ読み込み
    int N; //配列長
    cin >> N; // n=10
    int a[N];  // 最大 2*10**5 個ですが余裕をもたせます len=10
    int res = 0;  // 答えを格納
    for (int i = 0; i < N; ++i) cin >> a[i];

	int ruiseki[N+1];
    ruiseki[0] = 0;
    int sum = 0;
    for (int i = 0; i < N; i++) // 部分配列の長さ size = 2
    {
        sum += a[i];
        ruiseki[i+1] = sum;
    }
    sort(ruiseki, ruiseki + N, greater<int>());  // ruiseki[0:N+1] を大きい順にソート

	same = 0
    for (int i = 0; i < N; i++) // 部分配列の長さ size = 2
    {
        int a = ruiseki[i];
        int b = ruiseki[i+1];
        if (a==b)
        {
            same++;
            res += same;
        }
        else
        {
            same = 0:
        }

    }
    cout << res << endl;
}

