#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 > frequencyMap;
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() {
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;
cout << "\nMost Repeated Element: " << najucestaliji << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpwYWlyPHZlY3Rvcjxsb25nIGxvbmcgPixsb25nIGxvbmcgPiBzb2x2ZSh2ZWN0b3I8bG9uZyBsb25nID4mIG5peikgewogICAgdW5vcmRlcmVkX21hcDxsb25nIGxvbmcgLCBsb25nIGxvbmcgPiBtYXBhUHJlZmlrc25paFN1bWE7IAogICAgdW5vcmRlcmVkX21hcDxsb25nIGxvbmcgLCBsb25nIGxvbmcgPiBmcmVxdWVuY3lNYXA7IAogICAgbG9uZyBsb25nICBtYXhVY2VzdGFsb3N0ID0gMCwgbmFqdWNlc3RhbGlqaUVsZW1lbnQgPSBuaXpbMF07CiAgICBsb25nIGxvbmcgIHN0YXJ0ID0gLTEsIGVuZCA9IC0xOwogICAgbG9uZyBsb25nICBwcmVmaWtzbmFTdW1hID0gMDsKCiAgICBtYXBhUHJlZmlrc25paFN1bWFbMF0gPSAtMTsgCgogICAgZm9yIChsb25nIGxvbmcgIGkgPSAwOyBpIDwgbml6LnNpemUoKTsgaSsrKSB7CiAgICAgICAgcHJlZmlrc25hU3VtYSArPSBuaXpbaV07CgogICAgICAgIGlmIChtYXBhUHJlZmlrc25paFN1bWEuZmluZChwcmVmaWtzbmFTdW1hKSAhPSBtYXBhUHJlZmlrc25paFN1bWEuZW5kKCkpIHsKICAgICAgICAgICAgbG9uZyBsb25nIGxldm8gPSBtYXBhUHJlZmlrc25paFN1bWFbcHJlZmlrc25hU3VtYV0gKyAxOwogICAgICAgICAgICB2ZWN0b3I8bG9uZyBsb25nPiBwb2RuaXoobml6LmJlZ2luKCkgKyBsZXZvLCBuaXouYmVnaW4oKSArIGkgKyAxKTsKCiAgICAgICAgICAgIAogICAgICAgICAgICB1bm9yZGVyZWRfbWFwPGxvbmcgbG9uZywgbG9uZyBsb25nPiB0ZW1wVWNlc3RhbG9zdDsKICAgICAgICAgICAgZm9yIChsb25nIGxvbmcgbnVtIDogcG9kbml6KSB0ZW1wVWNlc3RhbG9zdFtudW1dKys7CgogICAgICAgICAgICAKICAgICAgICAgICAgZm9yIChhdXRvJiBbbnVtLCB1Y2VzdGFsb3N0XSA6IHRlbXBVY2VzdGFsb3N0KSB7CiAgICAgICAgICAgICAgICBpZiAodWNlc3RhbG9zdCA+IG1heFVjZXN0YWxvc3QpIHsKICAgICAgICAgICAgICAgICAgICBtYXhVY2VzdGFsb3N0ID0gdWNlc3RhbG9zdDsKICAgICAgICAgICAgICAgICAgICBuYWp1Y2VzdGFsaWppRWxlbWVudCA9IG51bTsKICAgICAgICAgICAgICAgICAgICBzdGFydCA9IGxldm87CiAgICAgICAgICAgICAgICAgICAgZW5kID0gaTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG1hcGFQcmVmaWtzbmloU3VtYVtwcmVmaWtzbmFTdW1hXSA9IGk7CiAgICAgICAgfQogICAgfQoKICAgIHZlY3Rvcjxsb25nIGxvbmc+IG5hamJvbGppUG9kbml6OwogICAgaWYgKHN0YXJ0ICE9IC0xKSB7CiAgICAgICAgbmFqYm9samlQb2RuaXouYXNzaWduKG5pei5iZWdpbigpICsgc3RhcnQsIG5pei5iZWdpbigpICsgZW5kICsgMSk7CiAgICB9CgogICAgcmV0dXJuIHtuYWpib2xqaVBvZG5peiwgbmFqdWNlc3RhbGlqaUVsZW1lbnR9Owp9CgppbnQgbWFpbigpIHsKICAgIHZlY3Rvcjxsb25nIGxvbmc+IG5pejsKICAgIGxvbmcgbG9uZyBuOwogICAgY2luID4+IG47CiAgICBmb3IgKGxvbmcgbG9uZyBpID0gMDsgaSA8IG47IGkrKyl7CiAgICAJbG9uZyBsb25nIHRlbXA7CiAgICAJY2luID4+IHRlbXA7CiAgICAJbml6LnB1c2hfYmFjayh0ZW1wKTsKICAgIH0KCiAgICBhdXRvIFtwb2RuaXosIG5hanVjZXN0YWxpamldID0gc29sdmUobml6KTsKICAgIAogICAgbG9uZyBsb25nIGJyb2phYyA9IDA7CgogICAgZm9yIChsb25nIGxvbmcgbnVtIDogcG9kbml6KSAKICAgIAlpZihudW0gPT0gbmFqdWNlc3RhbGlqaSkgCiAgICAJCWJyb2phYysrOwogICAgY291dCA8PCBicm9qYWM7CiAgICBjb3V0IDw8ICJcbk1vc3QgUmVwZWF0ZWQgRWxlbWVudDogIiA8PCBuYWp1Y2VzdGFsaWppIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0=