MATL , 20 байт
TiodgvYsG8XQ!"@gto?P
Вхід - це масив стовпців, який використовується ;
як роздільник.
Спробуйте в Інтернеті!
Пояснення
Розглянемо в якості прикладу вхідний масив [1;2;3;5;7;4;6;7;9]
. Перша частина коду, Tiodgv
перетворює цей масив у [1;1;1;0;0;1;0;1;0]
, де 1
вказує на зміну паритету . (Зокрема, код отримує паритет кожного запису вхідного масиву, обчислює послідовні відмінності, перетворює ненульові значення на 1
і попереджує a 1
.)
Потім Ys
обчислює сукупну суму , даючи [1;2;3;3;3;4;4;5;5]
. Кожне з цих номерів буде використовуватися як мітка , на основі якої будуть впорядковані елементи введення . Це робиться шляхом G8XQ!
, який розбиває вхідний масив на масив комірок, що містить групи. У цьому випадку він дає {[1] [2] [3;5;7] [4;6] [7;9]}
.
Решта коду ітераціює ( "
) на масиві комірок. Кожен складовий числовий масив висувається з @g
. to
робить копію та обчислює її паритет . Якщо ( ?
) результат є truthy, тобто вміст масиву непарний, масив перевертається ( P
).
Стек неявно відображається в кінці. Відображається кожен числовий вертикальний масив із поданням списку чисел, розділених новими рядками.