(Випадково надихається https://codegolf.meta.stackexchange.com/a/17272/42963 )
Давши прямокутну матрицю цифр (тобто 0 - 9
), виведіть "шматки" матриці так, ніби цифри з'єднані між собою, утворюючи єдину частину, у порядку зростання цифрами. Шматки гарантовано з'єднуються лише ортогонально - жоден шматок не з'єднається по діагоналі. Залишатиметься лише 10 штук (тобто, 3
фрагмент не з’явиться двічі в одній матриці).
Наприклад, дана матриця
0 1 1 1
0 0 1 2
3 3 2 2
нижче наведені фрагменти та приклад результату:
0
0 0
1 1 1
1
2
2 2
3 3
Розміщення важливо для збереження форми шматочків, однак шматочки не обов'язково потребують внутрішніх інтервалів. Самі твори слід якось послідовно виокремлювати (наприклад, новий рядок між творами, переконуючись, що кожен має різний характер тощо). Крім того, сторонні пробіли (наприклад, обведення нових рядків або провідних стовпців) не допускаються. Наприклад, також було б дійсним таке:
0
00
111
1
2
22
33
або
#
##
###
#
#
##
##
Але такого не буде (зверніть увагу на пробіли позаду 0
s):
0
0 0
Обертання або відображення також не допускаються. Наприклад, виведення
1
111
для вищевказаної матриці також недійсна.
Елементи матриці можуть мати отвори або бути лише одним елементом:
0 0 0 1
0 2 0 1
0 0 0 3
Або фрагмент може бути цілою матрицею:
0 0 0
0 0 0
Ось більший, складніший тестовий випадок:
1 1 1 1 1 2 2
3 4 4 4 2 2 2
5 5 4 4 2 0 0
5 6 6 6 6 7 7
5 6 8 8 6 6 7
9 6 6 6 7 7 7
І приклад результату:
00
11111
22
222
2
3
444
44
55
5
5
6666
6 66
666
77
7
777
88
9
Правила та введення / виведення
- Введення та вихід можуть бути надані будь-яким зручним методом .
- Ви можете роздрукувати його в STDOUT або повернути його як результат функції.
- Прийнятна або повна програма, або функція.
- Провідна пробільна зона для збереження форми (наприклад, форма "Т"
1
у прикладі) необхідна, послідовне пробіли, щоб зробити шматки чіткими, і одна кінцева нова лінія в кінці дозволена, але жодна інша пробіл не допускається. - Можна сміливо припустити , що частини пронумеровані
0
вN
суміжно, а це означає , що (наприклад)3
не буде втрачена в шість частинах матриці. - Стандартні лазівки заборонені.
- Це код-гольф, тому застосовуються всі звичайні правила гольфу, і найкоротший код (у байтах) виграє.
0
як значення наповнювача? Таким чином, кожен фрагмент буде виводитися з рештою значень у матриці, встановленій0
-1
будь-яким іншим значенням замість нічого / пробілу не було б нормальним.
' '
) у такому випадку?
-1
або пробілом, що представляє порожній простір, або відсутністю елемента, якщо це можливо)?