परिदृश्य
दफ्तर में बहुत दिन तक काम करने और ढेर होने के बाद stackexchange.com , मैं अंत में 16:58 पर दरवाजे से बाहर निकलता हूं, पहले ही दिन से थके हुए। क्योंकि मैं अभी भी केवल एक प्रशिक्षु हूं, मेरे परिवहन का वर्तमान तरीका साइकिल पर है। मैं अपने भरोसेमंद प्यूज़ो रेनॉल्ड्स 501 को सौंपता हूं, लेकिन इससे पहले कि मैं इसे दूर कर सकूं, मुझे इसे अनलॉक करने की आवश्यकता है। लॉक एक मानक चार अंकों का संयोजन लॉक (0-9) है, फ्रेम और फ्रंट व्हील के माध्यम से। जैसा कि मैं जागने की कोशिश करता हूं, मैं संयोजन में प्रवेश करने के लिए अपना हाथ ऊपर खींचता हूं।
चुनौती
क्योंकि मेरी उंगलियां थकी हुई हैं, इसलिए मैं सबसे कम आंदोलनों के साथ लॉक को सही संयोजन में बदलना चाहता हूं। एक आंदोलन को एक स्थिति (36 डिग्री) द्वारा रोटेशन के रूप में परिभाषित किया जाता है, उदाहरण के लिए एक आंदोलन 5737
है 5738
। हालांकि, मैं एक ही समय में किसी भी तीन लगातार रिंगों को पकड़ सकता हूं , और उन्हें एक के रूप में घुमा सकता हूं , जो केवल एक ही आंदोलन के रूप में गिना जाता है। उदाहरण के लिए वहाँ से या करने के लिए केवल एक ही आंदोलन है । से चलती करने के लिए एक आंदोलन के रूप में अंक संख्या 1,2 और 4 एक ही दिशा में ले जाया गया है, लेकिन अंकों की संख्या 3 की स्वतंत्र रूप से नहीं है।5737
6837
5626
5737
6838
इसलिए, किसी दिए गए संयोजन के लिए मैं बाइक लॉक (किसी भी 4-अंकीय पूर्णांक) पर देख सकता हूं, सबसे कम संख्या में आंदोलनों को मैं इसे अनलॉक करने के लिए क्या कर सकता हूं, और हां, मैं किसी भी समय किसी भी दिशा में घूम सकता हूं। इसके द्वारा मेरा मतलब है कि मैं कुछ अंकों को एक दिशा में और अन्य अंकों को दूसरी दिशा में बदल सकता हूं: मेरे सभी आंदोलनों में प्रत्येक अनलॉक के लिए एटलॉकवाइज या क्लॉकवाइज नहीं होगा।
क्योंकि मैं आलसी हूं, मेरा अनलॉक कोड 0000 है।
यह कोड गोल्फ है मुझे बहुत कोड लिखने से परेशान नहीं किया जा सकता है, इसलिए बाइट्स जीत की संख्या में सबसे छोटा कार्यक्रम।
इनपुट स्टडिन से है, और आपके कोड को प्रत्येक आंदोलन के बाद प्रत्येक चरण में देखे जाने वाले संयोजनों को आउटपुट करना चाहिए, जिसमें अंत में 0000 भी शामिल है। संयोजन संयोजनों में से प्रत्येक को एक स्थान / न्यूलाइन / अल्पविराम / अवधि / एम्परसेंड द्वारा अलग किया जाना चाहिए।
उदाहरण
Input: 1210
0100
0000
Input: 9871
9870
0980
0090
0000
Input: 5555
4445&3335&2225&1115&0005&0006&0007&0008&0009&0000
Input: 1234
0124 0013 0002 0001 0000
मैंने इसे http://bicycles.stackexchange.com पर पोस्ट करने की कोशिश की , लेकिन उन्हें यह पसंद नहीं आया ...
डिस्क्लेमर: पहला गोल्फ, ऐसा कुछ भी जो टूटा हुआ है / कोई गुम सूचना है मुझे बताएं! इसके अलावा, मैंने सभी उदाहरणों को हाथ से किया था, इसलिए ऐसे समाधान हो सकते हैं जिनमें कम आंदोलनों का समावेश हो!
EDIT: उन उत्तरों के लिए जिनके पास समान संख्या में आंदोलनों के साथ कई समाधान पथ हैं (व्यावहारिक रूप से उनमें से सभी), कोई पसंदीदा समाधान नहीं है।