Moje przewody są splątane!
Czy to nie denerwujące, gdy wszystkie przewody się zaplątują? To właśnie mi się przydarzyło, więc chciałbym pomóc mi je rozwiązać! Dla Twojej wygody odłączyłem je wszystkie od urządzenia, ale nadal wszystkie są podłączone do gniazdka. Twoim zadaniem jest dowiedzieć się, jak je rozwiązać!
Wejście
Dane wejściowe będą składały się ze spacji, potoków i znaków X (oba przypadki). Dane wejściowe będą wyglądać mniej więcej tak:
| | | |
X | |
| | x
| X |
| | | |
Wielka litera X oznacza, że lewy drut przecina prawy drut, a mała litera x oznacza coś przeciwnego. Pierwszy i ostatni wiersz zawsze będą | | | |.... Możesz wziąć dane wejściowe jako ciąg rozdzielany przecinkami, tablicę ciągów itp. Format nie jest ścisły, o ile ma sens i nie zawiera żadnych dodatkowych informacji.
Wynik
Aby sprostać temu wyzwaniu, muszę nie tylko wiedzieć, ile czasu zajmie, ale muszę dokładnie wiedzieć, co robić. Tak więc wypisz listę par liczb całkowitych ze znakiem R lub L, bez rozróżniania wielkości liter, co oznacza, które dwa druty należy rozplątać i w którą stronę (R oznacza od prawej do lewej i odwrotnie dla L). Musisz mi powiedzieć, w jaki sposób je przekreślić; Nie potrafię tego rozgryźć. Dane wyjściowe są również dość elastyczne, pod warunkiem, że wypisujesz wszystkie pary liczb całkowitych + znak we właściwej kolejności i nie wypisujesz żadnego dodatkowego nonsensownego tekstu (nawiasy kwadratowe, przecinki itp. Są w porządku). Druty mogą mieć zero lub jeden indeks, ale indeks musi zaczynać się od lewej. Pamiętaj, że musisz rozplątać od dołu, a nie od góry. Styl wyjściowy musi być spójny, a jeśli nie jest to oczywiste, określ sposób drukowania. Przypadek postaci nie jest spójny,
Przykładowe dane wyjściowe
W powyższym przykładzie dane wyjściowe wyglądałyby następująco:
2 3 R
3 4 L
1 2 R
Format wyjściowy to lista rozdzielonych spacjami wartości nowego wiersza. Jest to indeks 1.
Dalsze specyfikacje
Prawidłowe jest ustawienie X i X pionowo na sobie w dowolnej kolejności. Ponieważ jestem leniwy, nie chcę niepotrzebnie zamieniać przewodów, więc nie wysyłaj niczego w tych przypadkach; jeśli to znajdę, delikatnie pociągnę za przewody, aby wyprostować je.
Prawidłowe jest również ustawienie wielu X i X w stosie w pionie i dopóki żaden drut nie jest zaangażowany w inne skrzyżowania, nie chcę żadnych dodatkowych ruchów (ponieważ jestem leniwy). Tak więc, jeśli znaki X X x X x xpojawiają się w kolumnie bez innych skrzyżowań, dane wyjściowe powinny być puste!
W przypadku, gdy nie jest to jasne, R eliminuje X, a L eliminuje x.
W tym samym rzędzie mogą znajdować się dwa skrzyżowania przewodów, w takim przypadku kolejność tych dwóch zamian nie ma znaczenia. Nigdy nie dostaniesz czegoś takiego | X X |(to nie ma sensu, ponieważ sugeruje, że środkowy drut przecina się po drutach zarówno po jego lewej, jak i prawej stronie).
Nie zawsze są skrzyżowania ...
Wejściem może być pojedyncza rura. Jednak dane wejściowe nigdy nie będą puste.
Najkrótsze ważne rozwiązanie wygrywa 20 grudnia!
Więcej przykładów
Tak jak obiecałam:
Przykład 1
Wejście
| | | | | |
| | X x
X | x |
| x | X
X X | |
| | | | | |
Wynik
1 2 R
3 4 R
2 3 L
5 6 R
1 2 R
4 5 L
3 4 R
5 6 L
Przykład 2
Wejście
| | |
X |
| x
| | |
| X
| x
| | |
Wynik
2 3 L
1 2 R
Przykład 3
Wejście
|
Dane wyjściowe są puste. Tak, musisz poradzić sobie z tą sprawą.
Przykład 4
Wejście
| |
X
x
X
x
X
x
X
x
X
x
| |
Dane wyjściowe są puste. Dla żartu :).
Przykład 5
Wejście
| |
X
X
x
X
x
x
| |
Dane wyjściowe są nadal puste ...