#include <iostream>
#include <algorithm>
#include <cstddef>
int max_rep(int* f, int* l){
int n = *f, *p;
ptrdiff_t d, k = 0;
//сортируем по-возрастанию
std::sort(f, l);
//далее пройдёмся по массиву
while(f != l){
p = f + 1;
//подсчитываем повторы
while((p != l) && (*p == *f))
++p;
if((d = ptrdiff_t(p - f)) > k){
k = d;
n = *f;
}
f = p;
}
return n;
}
int main(void){
int A[] = { 2, 3, 2, 1, 2, 1, 3, 2, 1 };
int N = sizeof(A)/sizeof(A[0]);
std::cout << "max rep: " << max_rep(A, A + N) << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8Y3N0ZGRlZj4KCgppbnQgbWF4X3JlcChpbnQqIGYsIGludCogbCl7CglpbnQgbiA9ICpmLCAqcDsKCXB0cmRpZmZfdCBkLCBrID0gMDsKCgkvL9GB0L7RgNGC0LjRgNGD0LXQvCDQv9C+LdCy0L7Qt9GA0LDRgdGC0LDQvdC40Y4KCXN0ZDo6c29ydChmLCBsKTsKCgkvL9C00LDQu9C10LUg0L/RgNC+0LnQtNGR0LzRgdGPINC/0L4g0LzQsNGB0YHQuNCy0YMKCXdoaWxlKGYgIT0gbCl7CgkJcCA9IGYgKyAxOwoKCQkvL9C/0L7QtNGB0YfQuNGC0YvQstCw0LXQvCDQv9C+0LLRgtC+0YDRiwoJCXdoaWxlKChwICE9IGwpICYmICgqcCA9PSAqZikpCgkJCSsrcDsKCgkJaWYoKGQgPSBwdHJkaWZmX3QocCAtIGYpKSA+IGspewoJCQlrID0gZDsKCQkJbiA9ICpmOwoJCX0KCQlmID0gcDsKCX0KCXJldHVybiBuOwp9CgoKCmludCBtYWluKHZvaWQpewoJaW50IEFbXSA9IHsgMiwgMywgMiwgMSwgMiwgMSwgMywgMiwgMSB9OwoJaW50IE4gICA9IHNpemVvZihBKS9zaXplb2YoQVswXSk7CgoJc3RkOjpjb3V0IDw8ICJtYXggcmVwOiAiIDw8IG1heF9yZXAoQSwgQSArIE4pIDw8IHN0ZDo6ZW5kbDsKCXJldHVybiAwOwp9Cg==