To powszechna łamigłówka, którą wielu z was rozwiązało ręcznie. Teraz nadszedł czas, aby napisać algorytm, aby rozwiązać to samo.
Są równe liczby drążków dopasowanych ustawionych w dwóch różnych bokach naprzeciwko siebie. Między nimi jest jedna pusta przestrzeń. Powiedz coś takiego jak na poniższym rysunku (jeśli całkowita liczba pasujących kijów wynosi 4).

Każdy kij może przesunąć się o jeden krok w kierunku do przodu (jeśli bezpośrednia przednia przestrzeń jest wolna), lub można go przeskoczyć nad jednym kijem z przodu i wylądować w wolnej przestrzeni (jeśli ta przestrzeń jest wolna). Ruch w odwrotnym kierunku nie jest możliwy (nawet przestrzeń jest wolna). Niedozwolony jest również skok do tyłu. Tylko jeden ruch jest dozwolony w jednym kroku.
Teraz musisz napisać algorytm, aby znaleźć minimalne wymagane kroki, za pomocą których wszystkie drążki zapałek po lewej stronie wylądują po prawej stronie, a wszystkie drążki zapałek po prawej stronie wylądują po lewej stronie.
Na przykład: jeśli w sumie są 2 kijki do zapałek (po 1 z każdej strony), kroki będą następujące:

Uwaga: na powyższym rysunku najpierw przesunięto lewy drążek boczny. Inne rozwiązanie istnieje, gdy prawy drążek boczny porusza się pierwszy. Ale w przypadku tego problemu musisz podać tylko jedno rozwiązanie, przy założeniu, że lewy drążek porusza się pierwszy.
Poniższy rysunek opisuje ruchy za pomocą 4 kijów zapałek (2 z każdej strony):

Uwaga: na powyższym rysunku najpierw przesunięto lewy drążek boczny. Inne rozwiązanie istnieje, gdy prawy drążek boczny porusza się pierwszy. Ale w przypadku tego problemu musisz podać tylko jedno rozwiązanie, przy założeniu, że lewy drążek porusza się pierwszy.
[Założenie: Wejście może być dowolną liczbą parzystą od 02 do 14 (tj. 1 do 7 pasujących kijów z każdej strony). W przypadku danych wejściowych poza tym zakresem nie ma potrzeby sprawdzania poprawności ani podawania komunikatu o błędzie. Uwaga: W wyniku każdy krok jest oddzielony znakiem „|” (rura) znak. Programiści COBOL powinni zawsze przyjmować PIC 9 (2) jako wielkość wejściową i mogą również zakładać, że wyjście ma być ustalone maksymalnej długości 450 znaków, wypełnione spacjami po prawej stronie.]
Przykładowe dane wejściowe:
02
Przykładowe dane wyjściowe:
01To02|03To01|02To03|
Przykładowe dane wejściowe:
04
Przykładowe dane wyjściowe:
02To03|04To02|05To04|03To05|01To03|02To01|04To02|03To04|
Przykładowe dane wejściowe:
06
Przykładowe dane wyjściowe:
03To04|05To03|06To05|04To06|02To04|01To02|03To01|05To03|07To05|06To07|04To06|02To04|03To02|05To03|04To05|



