#include <iostream>
#include <vector>

using namespace std;

int main() {
    int n;
    cin >> n;
    
    vector<long long> a(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    
    // 计算整个数组的和
    long long total_sum = 0;
    for (int i = 0; i < n; i++) {
        total_sum += a[i];
    }
    
    // 如果总和不能被3整除,则无解
    if (total_sum % 3 != 0) {
        cout << 0 << endl;
        return 0;
    }
    
    long long target_sum = total_sum / 3;
    int count = 0;
    
    // 预处理:计算前缀和和有正数的区间
    vector<long long> prefix_sum(n + 1, 0);
    vector<bool> prefix_has_positive(n + 1, false);
    
    for (int i = 0; i < n; i++) {
        prefix_sum[i + 1] = prefix_sum[i] + a[i];
        prefix_has_positive[i + 1] = prefix_has_positive[i] || (a[i] > 0);
    }
    
    // 预处理:计算后缀是否有正数
    vector<bool> suffix_has_positive(n + 1, false);
    for (int i = n - 1; i >= 0; i--) {
        suffix_has_positive[i] = suffix_has_positive[i + 1] || (a[i] > 0);
    }
    
    // 枚举两个切点
    for (int i = 0; i < n - 2; i++) {
        // 第一个子数组 [0...i]
        long long sum1 = prefix_sum[i + 1];
        bool has_positive1 = prefix_has_positive[i + 1];
        
        if (sum1 != target_sum || !has_positive1) {
            continue;
        }
        
        for (int j = i + 1; j < n - 1; j++) {
            // 第二个子数组 [i+1...j]
            long long sum2 = prefix_sum[j + 1] - prefix_sum[i + 1];
            
            // 检查第二个子数组是否有正数
            bool has_positive2 = false;
            for (int k = i + 1; k <= j; k++) {
                if (a[k] > 0) {
                    has_positive2 = true;
                    break;
                }
            }
            
            if (sum2 != target_sum || !has_positive2) {
                continue;
            }
            
            // 第三个子数组 [j+1...n-1]
            long long sum3 = prefix_sum[n] - prefix_sum[j + 1];
            bool has_positive3 = suffix_has_positive[j + 1];
            
            if (sum3 == target_sum && has_positive3) {
                count++;
            }
        }
    }
    
    cout << count << endl;
    return 0;
}