एक स्ट्रिंग को देखते हुए जहां पहली पंक्ति में रिक्त स्थान होते हैं और एक अवधि ( .
"गेंद") होती है, इसके बाद रिक्त स्थान वाली रेखाएं, आगे की ओर स्लैश ( /
), और बैकस्लैश ( \
) होते हैं, यह निर्धारित करते हैं कि अपनी प्रारंभिक स्थिति से गिरने के बाद गेंद किस कॉलम में उतरेगी। । प्रत्येक /
इसे 1 कॉलम द्वारा बाईं ओर \
ले जाता है और प्रत्येक इसे 1 कॉलम द्वारा दाईं ओर ले जाता है।
नमूना इनपुट
.
/ \ \
/ /
\ \/ \
\ /\
\ /\ \
\ /
नमूना उत्पादन
गेंद कॉलम 5 में शुरू होती है, /
लाइन 3 पर हिट होती है , फिर तीनों \
लाइनों पर 5 से 7 तक अंतिम स्थिति के लिए जाती है:
7
ध्यान दें कि कॉलम 1-अनुक्रमित हैं, ज्यादातर पाठ संपादक सम्मेलनों के साथ संगतता के लिए।
किनारे के मामले
यदि गेंद /
पहले कॉलम में हिट करती है , तो यह अनन्त रूप से बिना किसी कॉलम के 0. में फंस जाती है। आपके प्रोग्राम को इसे सही तरीके से प्रिंट करके संभालना चाहिए 0
।
यदि गेंद किसी \/
पैटर्न के दोनों ओर जाती है , तो परिणाम अपरिभाषित होता है। आपके कार्यक्रम को बिना किसी आउटपुट, लूप के साथ समाप्त करने या त्रुटि संदेश (मेरा समाधान प्रिंट -1
) प्रिंट करने की अनुमति है , लेकिन इसे कुछ भी प्रिंट नहीं करना चाहिए जिसे वैध आउटपुट माना जा सकता है।
यदि गेंद बाईं स्लैश को एक \\
पैटर्न में मारती है , तो इसे सीधे दाहिने स्लैश के नीचे खत्म करना चाहिए, न कि इसके दाईं ओर। मूल रूप से मैंने जो हल सुझाया था वह इस गलत होने का खतरा था, इसलिए उस रास्ते पर मत जाओ!
प्रत्येक पंक्ति में या .
अंतिम /
या उसके बाद रिक्त स्थान हो सकते हैं या नहीं भी हो सकते हैं \
। आपके कार्यक्रम को उपलब्ध होने वाले ऐसे पैडिंग पर भरोसा नहीं करना चाहिए। एक समान नोट पर, पहली पंक्ति के बाद कोई रेखाएं हो सकती हैं या नहीं भी हो सकती हैं।
आप मान सकते हैं कि पहली पंक्ति में शून्य या अधिक रिक्त स्थान होंगे और बिल्कुल एक .
। इसके बाद की लाइनें, यदि कोई हो, में शून्य या अधिक स्थान और शून्य या अधिक स्लैश होंगे।
कार्यान्वयन का विवरण
आपका प्रोग्राम एक फ़ाइल से पढ़ सकता है (एक कमांड-लाइन तर्क के रूप में निर्दिष्ट) या मानक इनपुट से पढ़ा जा सकता है, अपनी सुविधानुसार।
आपके प्रोग्राम को सिंगल नंबर को आउटपुट के लिए आउटपुट देना होगा। (हां, एक अनुगामी न्यूलाइन ठीक है। हां, संख्या एक से अधिक अंक हो सकती है।)
परीक्षण के मामलों
इनपुट:
.
आउटपुट:
1
ध्यान दें कि यहां इनपुट बिल्कुल एक बाइट है। यह सबसे छोटा मामला है जिसे आपको संभालने में सक्षम होना चाहिए।
इनपुट:
. \ \ \ \
आउटपुट:
6
ध्यान दें कि इन स्लैश के बाद कोई स्थान नहीं है।
इनपुट:
. / /\\ / \ //\ \/// // \\/ \/\ /\/
आउटपुट:
0
इनपुट:
. / / / \\\ /\\ / \
आउटपुट:
1
इनपुट:
. \ / / \
आउटपुट:
4
इनपुट:
. \ \/\/\/
आउटपुट:
(anything but a nonnegative number)
अंतिम शब्द
यह प्रश्न एक (गुरुत्वाकर्षण-आधारित) बिलियर्ड-बॉल-प्रकार के कंप्यूटर के अनुकरण के समान है , लेकिन काफी सरल है, इसलिए उम्मीद है कि यह अधिक ब्याज प्राप्त करेगा।
पाइथन में मेरा 169 कैरेक्टर का सॉल्यूशन है। मुझे यकीन है कि यहां के प्रतिभाशाली गोल्फर्स उस रिकॉर्ड को टुकड़ों में फाड़ सकते हैं, हालांकि। : ^)
यह कोड-गोल्फ है , इसलिए पात्रों का सबसे छोटा उत्तर महीने के अंत में स्वीकार किया जाएगा!