आपने अपनी बाइक को 3 अंकों के संयोजन लॉक के साथ बंद कर दिया है। अब आप एक सवारी के लिए जाना चाहते हैं और निम्नलिखित कार्यक्रम की मदद से इसे अनलॉक करने की आवश्यकता है।
इनपुट
1 पैरामीटर
लॉक अवस्था में आपके लॉक का डिजिट संयोजन । यह 2 पैरामीटर (= अनलॉक का संयोजन) से अलग होना चाहिए राज्य ) । (या फिर आपकी बाइक चोरी हो सकती है!)
रेंज 000..999। अग्रणी शून्य को छोड़ा नहीं जाना चाहिए।
दूसरा पैरामीटर
अनलॉक में आपके लॉक का अंक संयोजन राज्य । यह मूल्य आपका लक्ष्य है।
रेंज 000..999। अग्रणी शून्य को छोड़ा नहीं जाना चाहिए।
उत्पादन
प्रारंभिक अवस्था (जो हमेशा 1 पैरामीटर है) और अंतिम चरण (जो हमेशा 2 पैरामाटर होता है) सहित प्रत्येक "रोटेशन" के बाद संयोजन लॉक के प्रत्येक राज्य की एक सूची।
कलन विधि
जब तक आप अनलॉक किए गए राज्य में सही अंक तक नहीं पहुंचते, तब तक आप एक-एक करके पहला अंक "घुमाते" हैं । लेकिन, क्योंकि आप संपूर्ण अनलॉक-कोड के ज्ञान में हैं, तो आप अंक को उस दिशा में घुमाते हैं, जिसमें आपको अनलॉक अवस्था में अंक तक पहुंचने के लिए सबसे छोटी मात्रा में घुमावों की आवश्यकता होती है । एक टाई के मामले में आप जो भी दिशा चाहें चुन सकते हैं।
जब आप सही पहले अंक पर पहुंच गए हैं, तो आप उसी प्रक्रिया को 2 और फिर 3 के साथ शुरू करते हैं।
अंकों के क्रम को एक चक्र के रूप में समझना है:
... 9 0 1 2 3 4 5 6 7 8 9 0 1 2 ...
इसका मतलब है, कि 1 से 9 तक की छोटी मात्रा में घुमाव नहीं है
1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9
= 8
परंतु
1 -> 0 -> 9
= २।
टिप्पणियाँ
- आप डिफ़ॉल्ट I / O नियमों पर भरोसा कर सकते हैं
- आप मापदंडों के क्रम को बदल सकते हैं।
उदाहरण
उदाहरण 1, सही
Input: 999 001
Output:
999
099
009
000
001
उदाहरण 2, सही
Input: 000 292
Output:
000
100
200
290
291
292
उदाहरण 3, गलत आउटपुट
Input: 999 121
Wrong output:
999
899 // Wrong because wrong rotation direction.
799
699
...
Correct output:
999
099
199
109
119
129
120
121
उदाहरण 4, गलत इनपुट
Input: 1 212 // Wrong because no leading zeros.
यह कोड-गोल्फ सबसे छोटी उत्तर जीत है।