Меандр, що заповнює сітку, - це закритий шлях, який відвідує кожну клітинку квадратної сітки принаймні один раз, ніколи не перетинаючи жодного краю між сусідніми клітинками більше одного разу і ніколи не перетинаючи себе. Наприклад:
Після заповнення кожна комірка сітки може бути представлена однією з наступних 8 плиток:
Пронумеровані таким чином, плитки вищезгаданого меандру можуть бути представлені цією матрицею:
5 6 5 6
4 8 3 2
5 7 6 2
4 3 4 3
Ваше завдання - скласти меандр, що заповнює сітку, отримавши неповний набір плиток. Наприклад, неповний меандр:
... які можна представити за допомогою 0
s для відсутніх плиток:
5 0 0 0 6
0 0 7 0 0
0 0 0 0 3
2 4 0 0 0
0 0 3 0 0
... може бути завершено так:
... тобто:
5 6 5 1 6
4 8 7 6 2
5 7 7 7 3
2 4 8 8 6
4 1 3 4 3
Технічні умови
- Вхід завжди матиме щонайменше і максимум (не порожні) плитки, де .
- Ви можете використовувати будь-який набір значень для представлення плиток, якщо це вказано у вашій відповіді.
- Введення та вихід можуть бути у будь-якому форматі та порядку, якщо це вказано у вашій відповіді.
- Принаймні одне дійсне рішення буде існувати для всіх входів (тобто вам не потрібно обробляти недійсні дані).
- Застосовуються стандартні правила вводу / виводу .
- Стандартні лазівки заборонені.
- Пояснення навіть для "практичних" мов заохочуються.
Тестові справи
Вхід ( Θ ):
0 6 0 0
Вихід ( Θ ):
5 6 4 3
Вхід ( Θ ):
5 6 5 6 4 0 3 2 5 7 6 2 4 3 4 3
Вихід ( Θ ):
5 6 5 6 4 8 3 2 5 7 6 2 4 3 4 3
Вхід ( Θ ):
5 0 0 0 6 0 0 7 0 0 0 0 0 0 3 2 4 0 0 0 0 0 3 0 0
Вихід ( Θ ):
5 6 5 1 6 4 8 7 6 2 5 7 7 7 3 2 4 8 8 6 4 1 3 4 3