Разбиение по опорному

Просмотр в формате PDF

Submit solution


Очки: 120
Ограничение по времени: 2.0s
Ограничение по памяти: 256M

Problem type
Allowed languages
C++, Python

В системе обработки платежей есть список из n транзакций, каждая из которых характеризуется целым числом. Также задан порог p.

Нужно разделить транзакции на две группы:

  • сначала вывести все мелкие транзакции — те, у которых значение меньше p;
  • затем вывести все крупные транзакции — те, у которых значение не меньше p.

Внутри каждой из двух групп необходимо сохранить исходный порядок транзакций.

Входные данные

Первая строка содержит целое число n — количество транзакций.

Вторая строка содержит n целых чисел a_i — значения транзакций.

Третья строка содержит целое число p — порог разделения.

Выходные данные

Выведите значения транзакций после разбиения по порогу.

Ограничения

  • 1 <= n <= 2 * 10^5
  • -10^9 <= a_i <= 10^9
  • -10^9 <= p <= 10^9

Примеры

Пример 1

Входные данные

5
3 1 4 1 5
3

Выходные данные

1 1 3 4 5
Пример 2

Входные данные

6
-5 0 -1 7 -5 2
0

Выходные данные

-5 -1 -5 0 7 2

Комментарии

Еще нет ни одного комментария.