#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> subarray(niz.begin() + levo, niz.begin() + i + 1);
unordered_map<long long, long long> tempFreq;
for (long long num : subarray) tempFreq[num]++;
for (auto& [num, freq] : tempFreq) {
if (freq > maxUcestalost) {
maxUcestalost = freq;
najucestalijiElement = num;
start = levo;
end = i;
}
}
} else {
mapaPrefiksnihSuma[prefiksnaSuma] = i;
}
}
vector<long long> bestSubarray;
if (start != -1) {
bestSubarray.assign(niz.begin() + start, niz.begin() + end + 1);
}
return {bestSubarray, 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 [subarray, mostFrequent] = solve(niz);
long long brojac = 0;
for (long long num : subarray)
if(num == mostFrequent)
brojac++;
cout << brojac;
cout << "\nMost Repeated Element: " << mostFrequent << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpwYWlyPHZlY3Rvcjxsb25nIGxvbmcgPixsb25nIGxvbmcgPiBzb2x2ZSh2ZWN0b3I8bG9uZyBsb25nID4mIG5peikgewogICAgdW5vcmRlcmVkX21hcDxsb25nIGxvbmcgLCBsb25nIGxvbmcgPiBtYXBhUHJlZmlrc25paFN1bWE7IAogICAgdW5vcmRlcmVkX21hcDxsb25nIGxvbmcgLCBsb25nIGxvbmcgPiBmcmVxdWVuY3lNYXA7IAogICAgbG9uZyBsb25nICBtYXhVY2VzdGFsb3N0ID0gMCwgbmFqdWNlc3RhbGlqaUVsZW1lbnQgPSBuaXpbMF07CiAgICBsb25nIGxvbmcgIHN0YXJ0ID0gLTEsIGVuZCA9IC0xOwogICAgbG9uZyBsb25nICBwcmVmaWtzbmFTdW1hID0gMDsKCiAgICBtYXBhUHJlZmlrc25paFN1bWFbMF0gPSAtMTsgCgogICAgZm9yIChsb25nIGxvbmcgIGkgPSAwOyBpIDwgbml6LnNpemUoKTsgaSsrKSB7CiAgICAgICAgcHJlZmlrc25hU3VtYSArPSBuaXpbaV07CgogICAgICAgIGlmIChtYXBhUHJlZmlrc25paFN1bWEuZmluZChwcmVmaWtzbmFTdW1hKSAhPSBtYXBhUHJlZmlrc25paFN1bWEuZW5kKCkpIHsKICAgICAgICAgICAgbG9uZyBsb25nIGxldm8gPSBtYXBhUHJlZmlrc25paFN1bWFbcHJlZmlrc25hU3VtYV0gKyAxOwogICAgICAgICAgICB2ZWN0b3I8bG9uZyBsb25nPiBzdWJhcnJheShuaXouYmVnaW4oKSArIGxldm8sIG5pei5iZWdpbigpICsgaSArIDEpOwoKICAgICAgICAgICAgCiAgICAgICAgICAgIHVub3JkZXJlZF9tYXA8bG9uZyBsb25nLCBsb25nIGxvbmc+IHRlbXBGcmVxOwogICAgICAgICAgICBmb3IgKGxvbmcgbG9uZyBudW0gOiBzdWJhcnJheSkgdGVtcEZyZXFbbnVtXSsrOwoKICAgICAgICAgICAgCiAgICAgICAgICAgIGZvciAoYXV0byYgW251bSwgZnJlcV0gOiB0ZW1wRnJlcSkgewogICAgICAgICAgICAgICAgaWYgKGZyZXEgPiBtYXhVY2VzdGFsb3N0KSB7CiAgICAgICAgICAgICAgICAgICAgbWF4VWNlc3RhbG9zdCA9IGZyZXE7CiAgICAgICAgICAgICAgICAgICAgbmFqdWNlc3RhbGlqaUVsZW1lbnQgPSBudW07CiAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBsZXZvOwogICAgICAgICAgICAgICAgICAgIGVuZCA9IGk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBtYXBhUHJlZmlrc25paFN1bWFbcHJlZmlrc25hU3VtYV0gPSBpOwogICAgICAgIH0KICAgIH0KCiAgICB2ZWN0b3I8bG9uZyBsb25nPiBiZXN0U3ViYXJyYXk7CiAgICBpZiAoc3RhcnQgIT0gLTEpIHsKICAgICAgICBiZXN0U3ViYXJyYXkuYXNzaWduKG5pei5iZWdpbigpICsgc3RhcnQsIG5pei5iZWdpbigpICsgZW5kICsgMSk7CiAgICB9CgogICAgcmV0dXJuIHtiZXN0U3ViYXJyYXksIG5hanVjZXN0YWxpamlFbGVtZW50fTsKfQoKaW50IG1haW4oKSB7CiAgICB2ZWN0b3I8bG9uZyBsb25nPiBuaXo7CiAgICBsb25nIGxvbmcgbjsKICAgIGNpbiA+PiBuOwogICAgZm9yIChsb25nIGxvbmcgaSA9IDA7IGkgPCBuOyBpKyspewogICAgCWxvbmcgbG9uZyB0ZW1wOwogICAgCWNpbiA+PiB0ZW1wOwogICAgCW5pei5wdXNoX2JhY2sodGVtcCk7CiAgICB9CgogICAgYXV0byBbc3ViYXJyYXksIG1vc3RGcmVxdWVudF0gPSBzb2x2ZShuaXopOwogICAgCiAgICBsb25nIGxvbmcgYnJvamFjID0gMDsKCiAgICBmb3IgKGxvbmcgbG9uZyBudW0gOiBzdWJhcnJheSkgCiAgICAJaWYobnVtID09IG1vc3RGcmVxdWVudCkgCiAgICAJCWJyb2phYysrOwogICAgY291dCA8PCBicm9qYWM7CiAgICBjb3V0IDw8ICJcbk1vc3QgUmVwZWF0ZWQgRWxlbWVudDogIiA8PCBtb3N0RnJlcXVlbnQgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQ==