Це завдання пов'язане з гортанням млинців .
Можливо, ви чули про сортування млинців , де стопку млинців сортують за розміром, вставляючи шпак в стопку і перегортаючи всі млинці над шпателем, поки млинці не будуть відсортовані найменшими до найбільших на тарілці. Проблема спаленого млинця дещо інша. Усі млинці тепер мають одну сторону, яка згоріла, і обпалена сторона кожного млинця повинна бути звернена до тарілки, коли сортування завершиться.
Наприклад, враховуючи наступний стек (розмір млинця зліва. 0
Означає згорілу сторону вниз і 1
означає згорілу сторону вгору праворуч):
1 0
3 1
2 1
Ви можете перегорнути всю групу, щоб отримати 20 30 11
, перевернути дві найкращі, щоб отримати, 31 21 11
і перевернути всю стек знову, щоб отримати 10 20 30
, відсортований стоп спалених млинців. Ця послідовність рухів, фліп 3, фліп 2, фліп 3 може бути представлена як 3 2 3
.
Змагання
- Враховуючи масив розмірів млинців (не обов'язково унікальних) та їх орієнтацію, виведіть будь-яку дійсну послідовність сортування випалених млинців, тобто послідовність перегортань, що призводить до того, що стопка млинців сортується від найменшої до найбільшої із згорілими сторонами вниз.
- Введення та виведення можуть мати будь-який здоровий формат із роздільниками, але, будь ласка, вкажіть, які формати ви використовуєте та вкажіть, який кінець формату введення знаходиться у верхній частині стека (TOS).
- Дозволено гортати нульові млинці.
- Допускається змішування роздільників на вході / виході.
Тестові справи
Для всіх наступних тестових випадків введення - це список, а вихід - пробіл, розділений пробілом, а TOS - зліва.
[[1, 0], [3, 1], [2, 1]]
"3 2 3"
[[5, 1], [3, 0], [4, 1], [2, 1], [1, 0]]
"5 3 4 1 3 2 1"
[[5, 1], [3, 0], [3, 0], [1, 1]]
"4 3 2 3"
Як завжди, якщо щось незрозуміле чи неправильне, будь ласка, повідомте мене про це у коментарях. Успіхів і хорошого гольфу!