Problem
パズル「ハノイの塔」 1、2、3 の番号が付けられた 3 本のロッドで構成されます。異なる直径の n 個のディスクのピラミッドが、直径の小さい順にロッド 1 に置かれます。ディスクは一度に 1 つのロッドから別のロッドに移すことができますが、ディスクをより小さい直径のディスク上に置くことはできません。最小限の転送回数でピラミッド全体をロッド 1 からロッド 3 に転送する必要があります。
パズルを解くプログラムを作成します。指定された数のディスク n について、一連の順列を a b c の形式で出力します。シフトされたディスクの番号、b -このディスクが取り外されるロッドの番号、c -このディスクが置かれているロッドの番号。
たとえば、行 1 2 3 は、ディスク番号 1 をピン 2 からピン 3 に移動することを意味します。1 つのコマンドが 1 行に表示されます。ディスクには、直径が大きくなる順に 1 から n までの番号が付けられます。
入力
自然数 n (0 < n < 11) を入力します。
出力
プログラムは、指定された数のディスクからピラミッドを再配置する最小の (実行される操作の数の点で) 方法を表示する必要があります。
例
<頭>
# |
入力 |
出力 |
<本体>
1 |
2 |
1 1 2
2 1 3
1 2 3
|
表>
Запрещенные операторы: for
; while
; until