template <class In, class X>
void remove_copys(In begin, In end, In bk(In), const X& x)
{
while( begin!=end ) {
if (*begin != x)
bk(begin);
++begin;
}
};**(A + i) >= **(A + i + 1) map<int,int>), далее надо найти максимальный ключ со значением >2 (подсказка: map уже сортирован)