Це завдання пов'язане з гортанням млинців .
Можливо, ви чули про сортування млинців , де стопку млинців сортують за розміром, вставляючи шпак в стопку і перегортаючи всі млинці над шпателем, поки млинці не будуть відсортовані найменшими до найбільших на тарілці. Проблема спаленого млинця дещо інша. Усі млинці тепер мають одну сторону, яка згоріла, і обпалена сторона кожного млинця повинна бути звернена до тарілки, коли сортування завершиться.
Наприклад, враховуючи наступний стек (розмір млинця зліва. 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"
Як завжди, якщо щось незрозуміле чи неправильне, будь ласка, повідомте мене про це у коментарях. Успіхів і хорошого гольфу!