विभिन्न सुपर मारियो खेलों में हरे और लाल कोप्पा ट्रोपा के गोले सपाट सतहों पर घर्षणहीन रूप से स्लाइड कर सकते हैं और ईंट ब्लॉक को नष्ट कर सकते हैं जो उनके रास्ते में हैं। जब कोई शेल ईंट से टकराता है तो ब्लॉक टूट जाता है, इसे खाली जगह में बदल देता है, और कोपा शेल दिशा को उलट देता है। एक उदाहरण के रूप में, यहां लाल खोल देखें ।
मान लीजिए कि एक सुपर मारियो स्तर सिर्फ एक ब्लॉक ऊंचा है और हर ग्रिड सेल या तो एक ईंट या खाली जगह है, जो सबसे बाईं सेल को छोड़कर एक दाहिनी ओर चलती शेल है। स्तर भी आवधिक है , इसलिए यदि शेल स्तर के दाएं या बाएं किनारे से बाहर निकलता है तो यह विपरीत दिशा में पुन: पेश करेगा। इस स्थिति में खोल बंद रहेगा और स्तर के सभी ईंट ब्लॉकों को तब तक तोड़ता रहेगा जब तक कि कोई और अधिक न हो। अंतिम ईंट ब्लॉक के टूटने के बाद शेल कितनी दूर तक जाएगा?
चुनौती
एक गैर-नकारात्मक दशमलव पूर्णांक में होने वाले प्रोग्राम या फ़ंक्शन को लिखें। बिना किसी अग्रणी शून्य (केवल अपवाद 0 के साथ) में बाइनरी में व्यक्त यह संख्या, एक-ब्लॉक-उच्च स्तर के लेआउट को एन्कोड करती है। A 1
एक ईंट ब्लॉक है और एक 0
खाली जगह है।
कोप्पा शैल स्तर के बहुत बाएं किनारे पर डाला गया है और शुरू में दाएं घूम रहा है। उदाहरण के लिए, इनपुट 39
से जुड़ा स्तर है
>100111
क्योंकि 100111
बाइनरी में 39 है, और >
और <
सही प्रतिनिधित्व करते हैं और क्रमश: गोले चलती छोड़ दिया है।
बहुत अंतिम ईंट ब्लॉक (उर्फ 1
) टूट जाने के बाद आपको शेल द्वारा यात्रा की गई कुल दूरी को प्रिंट या वापस करने की आवश्यकता होती है ।
के लिए आउटपुट 39
है 7
और स्तर में परिवर्तन इस तरह दिखता है:
Level Cumulative Distance
>100111 0
<000111 0
>000110 0
0>00110 1
00>0110 2
000>110 3
000<010 3
00<0010 4
0<00010 5
<000010 6
000001< 7
000000> 7 <-- output
इसी प्रकार, इसके लिए आउटपुट 6
है 1
:
Level Cumulative Distance
>110 0
<010 0
001< 1
000> 1 <-- output
बाइट्स में सबसे छोटा कोड जीतता है।
संदर्भ के लिए, यहां इनपुट के 0
लिए आउटपुट हैं 20
:
0 0
1 0
2 0
3 0
4 0
5 0
6 1
7 1
8 0
9 0
10 1
11 2
12 2
13 1
14 3
15 3
16 0
17 0
18 1
19 3
20 2