#include <iostream>
#include <vector>
#include <unordered_map>
#include <algorithm>
using namespace std;
pair<vector<long long >,long long > solve(vector<long long >& niz) {
unordered_map<long long , long long > mapaPrefiksnihSuma;
unordered_map<long long , long long > mapaUcestalosti;
long long maxUcestalost = 0, najucestalijiElement = niz[0];
long long start = -1, end = -1;
long long prefiksnaSuma = 0;
mapaPrefiksnihSuma[0] = -1;
for (long long i = 0; i < niz.size(); i++) {
prefiksnaSuma += niz[i];
if (mapaPrefiksnihSuma.find(prefiksnaSuma) != mapaPrefiksnihSuma.end()) {
long long levo = mapaPrefiksnihSuma[prefiksnaSuma] + 1;
vector<long long> podniz(niz.begin() + levo, niz.begin() + i + 1);
unordered_map<long long, long long> tempUcestalost;
for (long long num : podniz) tempUcestalost[num]++;
for (auto& [num, ucestalost] : tempUcestalost) {
if (ucestalost > maxUcestalost) {
maxUcestalost = ucestalost;
najucestalijiElement = num;
start = levo;
end = i;
}
}
} else {
mapaPrefiksnihSuma[prefiksnaSuma] = i;
}
}
vector<long long> najboljiPodniz;
if (start != -1) {
najboljiPodniz.assign(niz.begin() + start, niz.begin() + end + 1);
}
return {najboljiPodniz, najucestalijiElement};
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
vector<long long> niz;
long long n;
cin >> n;
for (long long i = 0; i < n; i++){
long long temp;
cin >> temp;
niz.push_back(temp);
}
auto [podniz, najucestaliji] = solve(niz);
long long brojac = 0;
for (long long num : podniz)
if(num == najucestaliji)
brojac++;
cout << brojac;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpwYWlyPHZlY3Rvcjxsb25nIGxvbmcgPixsb25nIGxvbmcgPiBzb2x2ZSh2ZWN0b3I8bG9uZyBsb25nID4mIG5peikgewogICAgdW5vcmRlcmVkX21hcDxsb25nIGxvbmcgLCBsb25nIGxvbmcgPiBtYXBhUHJlZmlrc25paFN1bWE7IAogICAgdW5vcmRlcmVkX21hcDxsb25nIGxvbmcgLCBsb25nIGxvbmcgPiBtYXBhVWNlc3RhbG9zdGk7IAogICAgbG9uZyBsb25nICBtYXhVY2VzdGFsb3N0ID0gMCwgbmFqdWNlc3RhbGlqaUVsZW1lbnQgPSBuaXpbMF07CiAgICBsb25nIGxvbmcgIHN0YXJ0ID0gLTEsIGVuZCA9IC0xOwogICAgbG9uZyBsb25nICBwcmVmaWtzbmFTdW1hID0gMDsKCiAgICBtYXBhUHJlZmlrc25paFN1bWFbMF0gPSAtMTsgCgogICAgZm9yIChsb25nIGxvbmcgIGkgPSAwOyBpIDwgbml6LnNpemUoKTsgaSsrKSB7CiAgICAgICAgcHJlZmlrc25hU3VtYSArPSBuaXpbaV07CgogICAgICAgIGlmIChtYXBhUHJlZmlrc25paFN1bWEuZmluZChwcmVmaWtzbmFTdW1hKSAhPSBtYXBhUHJlZmlrc25paFN1bWEuZW5kKCkpIHsKICAgICAgICAgICAgbG9uZyBsb25nIGxldm8gPSBtYXBhUHJlZmlrc25paFN1bWFbcHJlZmlrc25hU3VtYV0gKyAxOwogICAgICAgICAgICB2ZWN0b3I8bG9uZyBsb25nPiBwb2RuaXoobml6LmJlZ2luKCkgKyBsZXZvLCBuaXouYmVnaW4oKSArIGkgKyAxKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICB1bm9yZGVyZWRfbWFwPGxvbmcgbG9uZywgbG9uZyBsb25nPiB0ZW1wVWNlc3RhbG9zdDsKICAgICAgICAgICAgZm9yIChsb25nIGxvbmcgbnVtIDogcG9kbml6KSB0ZW1wVWNlc3RhbG9zdFtudW1dKys7CgogICAgICAgICAgICAKICAgICAgICAgICAgZm9yIChhdXRvJiBbbnVtLCB1Y2VzdGFsb3N0XSA6IHRlbXBVY2VzdGFsb3N0KSB7CiAgICAgICAgICAgICAgICBpZiAodWNlc3RhbG9zdCA+IG1heFVjZXN0YWxvc3QpIHsKICAgICAgICAgICAgICAgICAgICBtYXhVY2VzdGFsb3N0ID0gdWNlc3RhbG9zdDsKICAgICAgICAgICAgICAgICAgICBuYWp1Y2VzdGFsaWppRWxlbWVudCA9IG51bTsKICAgICAgICAgICAgICAgICAgICBzdGFydCA9IGxldm87CiAgICAgICAgICAgICAgICAgICAgZW5kID0gaTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG1hcGFQcmVmaWtzbmloU3VtYVtwcmVmaWtzbmFTdW1hXSA9IGk7CiAgICAgICAgfQogICAgfQoKICAgIHZlY3Rvcjxsb25nIGxvbmc+IG5hamJvbGppUG9kbml6OwogICAgaWYgKHN0YXJ0ICE9IC0xKSB7CiAgICAgICAgbmFqYm9samlQb2RuaXouYXNzaWduKG5pei5iZWdpbigpICsgc3RhcnQsIG5pei5iZWdpbigpICsgZW5kICsgMSk7CiAgICB9CgogICAgcmV0dXJuIHtuYWpib2xqaVBvZG5peiwgbmFqdWNlc3RhbGlqaUVsZW1lbnR9Owp9CgppbnQgbWFpbigpIHsKCQoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CgljaW4udGllKE5VTEwpOwogICAgdmVjdG9yPGxvbmcgbG9uZz4gbml6OwogICAgbG9uZyBsb25nIG47CiAgICBjaW4gPj4gbjsKICAgIGZvciAobG9uZyBsb25nIGkgPSAwOyBpIDwgbjsgaSsrKXsKICAgIAlsb25nIGxvbmcgdGVtcDsKICAgIAljaW4gPj4gdGVtcDsKICAgIAluaXoucHVzaF9iYWNrKHRlbXApOwogICAgfQoKICAgIGF1dG8gW3BvZG5peiwgbmFqdWNlc3RhbGlqaV0gPSBzb2x2ZShuaXopOwogICAgCiAgICBsb25nIGxvbmcgYnJvamFjID0gMDsKCiAgICBmb3IgKGxvbmcgbG9uZyBudW0gOiBwb2RuaXopIAogICAgCWlmKG51bSA9PSBuYWp1Y2VzdGFsaWppKSAKICAgIAkJYnJvamFjKys7CiAgICBjb3V0IDw8IGJyb2phYzsKCiAgICByZXR1cm4gMDsKfQ==