एल्गोरिथ्म्स और डेटा स्ट्रक्चर्स

टावर्स ऑफ़ हनोई (Towers of Hanoi)

Video preview
Reducible द्वारा प्रस्तुत वीडियो - Towers of Hanoi: A Complete Recursive Visualization
 
तीन रॉड (बायां - 1, मध्य - 2, और दायां - 3) दिए गए हैं, जिनमें से पहले रॉड पर विभिन्न आकार की n गोल डिस्क रखी हुई हैं। ये डिस्क आकार के अनुसार ऊपर से नीचे की ओर बढ़ते क्रम में व्यवस्थित हैं। आपको केवल सबसे ऊपर वाली डिस्क को एक रॉड से उठाकर दूसरी रॉड पर रखने की अनुमति है, लेकिन इसे हमेशा किसी बड़ी डिस्क के ऊपर ही रखना होगा। अर्थात् आप किसी छोटी डिस्क के ऊपर बड़ी डिस्क नहीं रख सकते।
आपको उन सभी ऑपरेशनों को प्रिंट करना है जिनसे पहली रॉड पर मौजूद सभी डिस्क तीसरी रॉड पर पहुंच सकें। साथ ही, कुल मूव्स की संख्या न्यूनतम होनी चाहिए।

इनपुट

इनपुट में एक अकेला पूर्णांक n (1 ≤ n ≤ 16) दिया जाता है, जो पहली रॉड पर मौजूद डिस्कों की संख्या दर्शाता है।

आउटपुट

कार्यक्रम को वे सभी ऑपरेशन्स प्रिंट करने चाहिए जिनसे पहली रॉड की सभी डिस्क तीसरी रॉड पर पहुंचाई जा सकें, और यह सुनिश्चित रहे कि किसी रॉड पर मौजूद सभी डिस्क नीचे की डिस्क से छोटी हों। आउटपुट में से अधिक ऑपरेशन्स नहीं होने चाहिए।

उदाहरण

इनपुट
आउटपुट
2
1 -> 2 1 -> 3 2 -> 3
3
1 -> 3 1 -> 2 3 -> 2 1 -> 3 2 -> 1 2 -> 3 1 -> 3
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue