Мои провода все запутаны!
Разве это не раздражает, когда провода запутываются? Ну, это только что случилось со мной, поэтому я хотел бы помочь мне распутать их! Для вашего удобства я отключил их все от устройства, но все они все еще подключены к розетке. Ваша задача - понять, как их распутать!
вход
Ввод будет состоять из пробелов, каналов и X (оба случая). Ввод будет выглядеть примерно так:
| | | |
X | |
| | x
| X |
| | | |
Прописная буква X означает, что левый провод пересекает правый провод, а строчная буква x означает противоположное. Первая и последняя строки всегда будут | | | |.... Вы можете использовать входные данные в виде строки, разделенной запятыми, массива строк и т. Д. Формат не является строгим, если он имеет смысл и не содержит никакой дополнительной информации.
Выход
Для этого испытания мне нужно не только знать, сколько времени я займу, но и точно знать, что делать. Итак, выведите список целочисленных пар с символом R или L, без учета регистра, представляющих, какие два провода распутывать и в каком направлении (R означает справа налево, и наоборот для L). Вы должны сказать мне, какой способ их скрещивать; Я не могу понять это сам. Вывод также довольно гибкий, если вы выводите все пары целых чисел + символ в правильном порядке, и вы не выводите лишний бессмысленный текст (скобки, запятые и т. Д. В порядке). Проводники могут быть нулевыми или индексированными, но индекс должен начинаться слева. Обратите внимание, что вы должны распутать снизу, а не сверху. Стиль вывода должен быть согласованным, и, если он неочевиден, укажите способ вывода. Случай персонажа не должен быть последовательным,
Пример вывода
Для приведенного выше примера ввода результат будет примерно таким:
2 3 R
3 4 L
1 2 R
Выходной формат здесь представляет собой разделенный пробелами список значений, разделенных пробелами. Это 1-индексированный.
Дополнительные спецификации
Допустимо, чтобы X и x располагались вертикально друг над другом в любом порядке. Поскольку я ленивый, я не хочу переключать провода без необходимости, поэтому ничего не выводите для этих случаев; если я найду это, я просто осторожно потяну за провода, чтобы они были прямыми.
Также допустимо, чтобы несколько X и x были сложены вертикально, и пока ни один из проводов не задействован в других переходах, я не хочу никаких дополнительных ходов (потому что я ленивый). Таким образом, если символы X X x X x xотображаются в столбце без каких-либо других пересечений, выходные данные все равно должны быть пустыми!
В случае, если это не ясно, R исключает X, а L устраняет x.
В одном ряду может быть два пересечения проводов, и в этом случае порядок этих двух перестановок не имеет значения. Вы никогда не получите что-то подобное | X X |(это не имеет смысла, поскольку подразумевает, что средний провод пересекается по проводам как слева, так и справа).
Там не всегда переходы ...
На входе может быть одна труба. Однако ввод никогда не будет пустым.
Самое короткое действительное решение выиграет 20 декабря!
Больше примеров
Как я и обещал:
Пример 1
вход
| | | | | |
| | X x
X | x |
| x | X
X X | |
| | | | | |
Выход
1 2 R
3 4 R
2 3 L
5 6 R
1 2 R
4 5 L
3 4 R
5 6 L
Пример 2
вход
| | |
X |
| x
| | |
| X
| x
| | |
Выход
2 3 L
1 2 R
Пример 3
вход
|
Выход пуст. Да, вы должны разобраться с этим делом.
Пример 4
вход
| |
X
x
X
x
X
x
X
x
X
x
| |
Выход пуст. Просто для удовольствия :).
Пример 5
вход
| |
X
X
x
X
x
x
| |
Выход по-прежнему пуст ...