#include <iostream>
#include<bits/stdc++.h>
using namespace std;
template<typename K,typename V>
struct PairHash{
size_t operator()(const pair<K,V>&p) const {
auto h1 = hash<K>{}(p.first);
auto h2= hash<V>{}(p.second);
return h1^h2;
}
};
int main() {
int n ; cin>>n;
vector<int>arr(n);
for(int i = 0 ; i<n;i++) cin>>arr[i];
// your code goes here
vector<int>pre(n);
pre[0] = arr[0];
for(int i = 1; i<n;i++){
pre[i]=pre[i-1]+arr[i];
}
int count = 0 ;
unordered_map<pair<int,int>,int,PairHash<int,int>>hash;
for(int j = 0 ; j<n;j++){
count+=hash[{arr[j],pre[j]-2*arr[j]}];
hash[{arr[j],pre[j]}]++;
}
cout<<count;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGU8dHlwZW5hbWUgSyx0eXBlbmFtZSBWPgpzdHJ1Y3QgUGFpckhhc2h7CglzaXplX3Qgb3BlcmF0b3IoKShjb25zdCBwYWlyPEssVj4mcCkgY29uc3QgewoJCWF1dG8gaDEgPSBoYXNoPEs+e30ocC5maXJzdCk7CgkJYXV0byBoMj0gaGFzaDxWPnt9KHAuc2Vjb25kKTsKCQlyZXR1cm4gaDFeaDI7Cgl9Cn07CgppbnQgbWFpbigpIHsKCWludCBuIDsgY2luPj5uOwoJdmVjdG9yPGludD5hcnIobik7Cglmb3IoaW50IGkgPSAwIDsgaTxuO2krKykgY2luPj5hcnJbaV07CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgl2ZWN0b3I8aW50PnByZShuKTsKCXByZVswXSA9IGFyclswXTsKCWZvcihpbnQgaSA9IDE7IGk8bjtpKyspewoJCXByZVtpXT1wcmVbaS0xXSthcnJbaV07Cgl9CglpbnQgY291bnQgPSAwIDsgCgl1bm9yZGVyZWRfbWFwPHBhaXI8aW50LGludD4saW50LFBhaXJIYXNoPGludCxpbnQ+Pmhhc2g7Cglmb3IoaW50IGogPSAwIDsgajxuO2orKyl7CgkJY291bnQrPWhhc2hbe2FycltqXSxwcmVbal0tMiphcnJbal19XTsKCQloYXNoW3thcnJbal0scHJlW2pdfV0rKzsKCX0KCWNvdXQ8PGNvdW50OwoJCglyZXR1cm4gMDsKfQ==