Submit | All submissions | Best solutions | Back to list |
HANOI2 - Ciekawe Hanoi |
Wszyscy pewnie znacie problem wież Hanoi (jeśli nie, to zaleca się wcześniej z nim zapoznać: Wieże z Hanoi na Wikipedii). W tym zadaniu trochę go zmodyfikujemy. Standardowo mamy trzy pałeczki o numerach kolejno: 1, 2, 3. Wprowadźmy dodatkowe ograniczenie mobilności krążków. Krążki o numerach nieparzystych można przenosić jedynie zgodnie ze wskazówkami zegara: 1->2->3->1, zaś krążki o parzystych numerach - tylko przeciwnie: 1->3->2->1. Pozostałe reguły przenosin są bez zmian. Napisz program, który dla danej liczby n krążków oraz dla danych liczb s, d oznaczających kolejno pałeczkę początkową i końcową wypisze serię ruchów (pod uwagę bierzemy tylko optymalną ilość przenosin) po której wszystkie krążki z pałeczki s znajdą się na pałeczce d w żądanej kolejności.
Input
W pierwszym wierszu wejścia znajduje się liczba 1 <= t <= 25 oznaczająca ilość przypadków testowych. Każdy przypadek testowy składa się z trzech liczb: n, s, d ( 1 <= n <= 20; 1 <= s,d <= 3; s jest różne od d ) oznaczających kolejno: liczbę krążków, numer pałeczki startowej i numer pałeczki końcowej.
Output
Dla każdego przypadku testowego wypisz serię ruchów (dozwolonych według wyżej wymienionych zasad oraz zasad ogólnych problemu), która będzie optymalna i doprowadzi do przeniesienia wszystkich krążków z pałeczki startowej na pałeczkę końcową. Każdy ruch powinien być postaci:
numer_krazka: skad->dokad
co oznacza: krążek o numerze numer_krazka przenosimy z pałeczki o numerze skad na pałeczkę o numerze dokad.
każdy ruch w osobnej linii.
po każdym teście odstęp nowej linii.
Example
Input: 3
1 1 3
2 2 3
2 3 1
Output: 1: 1->2
1: 2->3
1: 2->3
2: 2->1
1: 3->1
1: 1->2
2: 1->3
1: 2->3
1: 3->1
2: 3->2
1: 1->2
1: 2->3
2: 2->1
1: 3->1
Â
Added by: | Adam BÄ…k |
Date: | 2011-12-11 |
Time limit: | 1s |
Source limit: | 5000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | ADA95 ASM32-GCC ASM32 BASH C C++ 4.3.2 CPP CPP14 C99 D FORTRAN GO GOSU HASK JAVA JS-RHINO JS-MONKEY LUA PERL PERL6 PHP PYPY PYTHON3 PY_NBC RUBY |
Resource: | kartkówka |