Задана последовательность, содержащая n целых чисел. Необходимо найти число,
которое встречается в этой последовательности наибольшее количество раз, а если
таких чисел несколько, то найти минимальное из них, и после этого переместить
все такие числа в конец заданной последовательности. Порядок расположения
остальных чисел должен остаться без изменения.
Например,
последовательность 1, 2, 3, 2, 3, 1, 2 после преобразования должна превратиться
в последовательность 1, 3, 3, 1, 2, 2, 2.
Требуется написать
программу, которая решает названную задачу.
Формат входных данных
Первая строка входного
файла содержит число n — количество чисел во
входной последовательности (3 ≤ n ≤
200 000). Следующая строка содержит входную
последовательность, состоящую из n целых
чисел, не превышающих по модулю 109. Все числа в строке разделены
пробелом.
Формат выходных данных
В выходной файл выводится
последовательность чисел, которая получается в результате названного
преобразования. Все числа в последовательности должны быть разделены пробелом.
Пример
входного и выходного файлов
Входные данные
|
Выходные данные
|
7
1 2 3 2 3 1 2
|
1 3 3 1 2 2 2
|