// PascalABC.NET 3.3, сборка 1627 от 27.01.2018
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),1,9); a.Println;
var r:=a.GroupBy(t->t).Select(t->(t.Key,t.Count))
.OrderBy(t->t[1]).ThenByDescending(t->t[0]).First[0];
a:=(a.Where(t->t=r)+a.Where(t->t<>r)).ToArray; a.Println
end.
Пример
n= 30
6 7 2 7 2 6 4 8 3 3 6 3 1 3 5 7 1 3 1 9 7 4 3 6 9 5 1 5 8 3
9 9 6 7 2 7 2 6 4 8 3 3 6 3 1 3 5 7 1 3 1 7 4 3 6 5 1 5 8 3