Questo è un puzzle comune che molti di voi hanno risolto manualmente. Ora è il momento di scrivere un algoritmo per risolvere lo stesso.
Ci sono levette uguali di numero allineate in due lati diversi rivolti l'uno verso l'altro. C'è un solo spazio vuoto tra di loro. Pronuncia qualcosa come la seguente figura (se il numero totale di stick di corrispondenza è 4).

Ogni stick può scorrere di un passo in avanti (se lo spazio frontale immediato è libero), oppure può essere saltato su uno stick davanti e atterrare nello spazio libero (se quello spazio è libero). Lo spostamento nella direzione opposta non è possibile (anche lo spazio è libero). Non è inoltre consentito il salto inverso. È consentita una sola mossa in una fase.
Ora, devi scrivere un algoritmo per trovare i passaggi minimi richiesti utilizzando i quali tutti gli stick di corrispondenza sul lato sinistro atterreranno sul lato destro e tutti gli stick di corrispondenza sul lato destro atterreranno sul lato sinistro.
Ad esempio: se ci sono 2 bastoncini (1 per lato) in totale, i passaggi saranno:

Nota: nella figura sopra la levetta laterale sinistra è stata spostata per prima. Un'altra soluzione esiste quando la levetta laterale destra si sposta per prima. Ma per questo problema, devi dare solo una soluzione e questo presuppone anche che la levetta laterale sinistra si muova per prima.
La figura seguente descrive le mosse con 4 levette (2 per lato):

Nota: nella figura sopra la levetta laterale sinistra è stata spostata per prima. Un'altra soluzione esiste quando la levetta laterale destra si sposta per prima. Ma per questo problema, devi dare solo una soluzione e questo presuppone anche che la levetta laterale sinistra si muova per prima.
[Presupposto: l'ingresso può essere un numero pari compreso tra 02 e 14 (ovvero da 1 a 7 stick di corrispondenza su ciascun lato). Per input al di fuori di questo intervallo, non è necessario eseguire alcuna convalida, né fornire alcun messaggio di errore. Nota: nell'output, ogni passaggio è separato da un '|' carattere (pipe). I programmatori COBOL devono sempre assumere PIC 9 (2) come dimensione di input e possono anche ritenere che l'output abbia una lunghezza massima di 450 caratteri, riempita con spazi a destra.]
Input di esempio:
02
Uscita campione:
01To02|03To01|02To03|
Input di esempio:
04
Uscita campione:
02To03|04To02|05To04|03To05|01To03|02To01|04To02|03To04|
Input di esempio:
06
Uscita campione:
03To04|05To03|06To05|04To06|02To04|01To02|03To01|05To03|07To05|06To07|04To06|02To04|03To02|05To03|04To05|



