Сдвиг нулей в конец

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

Submit solution


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

Problem type
Allowed languages
C++, Python

Дефрагментатор обрабатывает последовательность блоков на диске. Каждый блок описывается целым числом: значение 0 обозначает пустой блок, а любое другое число — занятый блок с данными.

Необходимо выполнить дефрагментацию: сдвинуть все пустые блоки в конец диска, при этом сохранив относительный порядок всех занятых блоков.

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

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

В первой строке задано число n — количество блоков на диске (1 <= n <= 2 * 10^5).

Во второй строке заданы n целых чисел a_i — описание блоков (-10^9 <= a_i <= 10^9).

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

Выведите n чисел — состояние диска после дефрагментации, в котором все блоки со значением 0 перенесены в конец, а порядок всех остальных блоков сохранён.

Ограничения

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

Примеры

Пример 1

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

5
0 5 0 -3 7

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

5 -3 7 0 0
Пример 2

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

6
-1 -2 3 4 5 6

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

-1 -2 3 4 5 6

Комментарии

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