Давайте визначимо не порожню, несортовану та кінцеву матрицю з унікальними числами наступним чином:
Дозволяє визначити 4 матричні ходи як:
- ↑ * (вгору): переміщує стовпчик вгору
- ↓ * (вниз): переміщує стовпчик вниз
- → * (праворуч): переміщує рядок праворуч
- ← * (зліва): переміщує рядок ліворуч
Зірочка (*) відображає стовпчик / рядок, на який впливає переміщення (може бути 0-індексованим або 1-індексованим. До вас. Будь ласка, вкажіть, який у вашій відповіді).
Завдання полягає в тому, щоб, використовуючи вищезазначені рухи, сортувати матрицю за порядком висхідних (найменший верхній лівий кут, а нижній правий кут - найвищий).
Приклад
Введення:
Можливий вихід: або . (Зверніть увагу, що будь-який з цих рухів може сортувати матрицю, щоб обидва відповіді були правильними)↑0
↓0
Введення:
Можливий вихід:→0
Введення (Приклад тестового випадку):
Можливий вихід:↑0↑1←1↑2
Введення:
Можливий вихід:
↑0↑2→0→2↑0→2↑1↑2←1
Введення:
Можливий вихід:
↑2↑1←3→0←3↓0←0←2→3↑3↑4
Введення:
Вихід:
або будь-який хід
Введення:
Вихід:
Примітки
- Можуть бути різні правильні виходи (не потрібно обов’язково бути однаковими, як тестові випадки чи найкоротші)
- Можна припустити, що це завжди буде спосіб замовити матрицю
- Edges з'єднує (як pacman: v)
- Там не буде матриця з більш ніж 9 стовпцями або / та рядками
- Припустимо, матриця містить лише додатні ненульові цілі числа
- Ви можете використовувати будь-які 4 різних значення, окрім чисел, для представлення рухів (у випадку цього, будь ласка, зазначте це у своїй відповіді)
- Стовпець / рядок може бути індексовано 0 або 1
- Критерії виграшу код-гольф
Додаткові тестові справи завжди вітаються
←0←0
правильним рішенням для другого прикладу, де ви дали рішення як →0
. Якщо це так, я думаю, що половина варіантів переміщення, ймовірно, не буде використана.