पृष्ठभूमि
कुछ महीने पहले, आपके जीवन का रोमांच बस शुरू होने वाला था। अब, इस सटीक क्षण में (हाँ, अब), महीनों की पीड़ा और कड़ी मेहनत के बाद, आप और दोस्तों का एक समूह दुनिया के शीर्ष पर खड़ा है। हां, आप सही हैं, आप सागरमठ के शिखर पर हैं ।
हालाँकि, चीज़ें वैसी नहीं हो रही हैं जैसी आप चाहते हैं। एक घने कोहरे ने आपको घेर लिया है और एक अविश्वसनीय रूप से बुरा दिखने वाला तूफान जितनी तेजी से आ रहा है। आपने रास्ते में किसी भी रस्सी को ठीक नहीं किया, और आपके पैरों के निशान बर्फ में ढँक गए हैं। यदि आप जीवित रहना चाहते हैं (कम से कम आज के लिए), तो आपको जितनी जल्दी हो सके वहाँ से बाहर निकलने की आवश्यकता है, लेकिन आपको सबसे पहले यह जानने का एक तरीका खोजना चाहिए कि पहाड़ का कौन सा चेहरा है जिसे आपको उतरना चाहिए।
सौभाग्य से, आप अपने साथ अपना सत फोन लेकर आए थे जिसे आपने यात्रा से पहले संशोधित किया था ताकि आप इसमें प्रोग्राम कर सकें और उसे निष्पादित कर सकें।
चुनौती
आप अपने फोन को ASCII- पुराने जमाने के अपठनीय-ऑन-द-टॉप-ऑफ-द-वर्ल्ड तरीके से पहाड़ का नक्शा डाउनलोड करने में सक्षम हैं। आपका काम यह तय करना है कि पहाड़ का कौन सा चेहरा सबसे आसान वंश प्रस्तुत करता है ताकि आप जीवित रहने की संभावना बढ़ा सकें। ऐसा करने के लिए, आपके पास अपने फोन पर एक प्रोग्राम कोड करने का शानदार विचार है जो बताएगा कि सबसे आसान तरीका कौन सा है। (अस्वीकरण: ये गतिविधियाँ पेशेवरों द्वारा की गई हैं। इस कथन के दौरान कोई भी प्रोग्रामर आहत नहीं हुआ था। कृपया, इसे घर पर आज़माएँ नहीं।)
नक्शे केवल पात्रों /और \(प्लस रिक्त स्थान और नए अंक) से बने होते हैं। किसी भी मानचित्र में, पहाड़ के शिखर को हमेशा से दर्शाया जाता है
/\
\/
और शिखर के प्रत्येक पक्ष ( 1,2,3या 4) से आपको हमेशा पहाड़ के नीचे एक "संभव" रास्ता मिलेगा।
1 /\ 2
3 \/ 4
मार्गों को हमेशा अगले तरीके से प्रस्तुत किया जाता है:
\
Steep-> / /
/ / <-Flat
/ \
Flat-> \ \
/ \ <-Steep
/\
\/
जहाँ प्रत्येक नया वर्ण अपने पूर्ववर्ती के बाएँ / दाएँ का एक स्थान होता है। प्रत्येक वर्ण का अर्थ है:
- यदि स्लैश / बैकलैश इसके शिखर पक्ष के समानांतर है -> एक 'खड़ी' भाग के रूप में गिना जाता है।
- यदि स्लैश / बैकस्लैश इसके शिखर की ओर लंबवत है -> 'फ्लैट' भाग के रूप में गिना जाता है।
* आगे के संदर्भ के लिए ऊपर ग्राफिक देखें।
नोट : पक्षों की अलग-अलग लंबाई हो सकती है और शिखर का गठन करने वाले वर्ण भी उनके पक्ष के हिस्से के रूप में गिने जाते हैं। ड्रॉ के मामले में, आप उनमें से कोई भी चुन सकते हैं।
मानक खामियों को अस्वीकार कर दिया जाता है।
इनपुट
पहाड़ या एक सादे पाठ फ़ाइल के नक्शे का प्रतिनिधित्व करने वाली एक स्ट्रिंग जिसमें एक ही जानकारी होती है।
भी
C:\....\file.txt
या
\
/ /
/ /
/ \
\ \
/ \
/\
\/
\ /
\ \
\ \
\ \
/ /
एक स्ट्रिंग के रूप में मान्य इनपुट हैं।
उत्पादन
उत्पादन के रूप में, आप या तो एक stdout सादे पाठ में या द्वारा एक फ़ाइल प्रस्तुत करना चाहिए छोटी से छोटी औसत ढलवाँपन के साथ कंधे से ASCII प्रोफ़ाइल प्रतिनिधित्व का उपयोग कर _फ्लैट भागों के लिए और /खड़ी भागों के लिए औसत ढलवाँपन के साथ पक्ष की (number of "/")/(total chars)।
ऊपर दिए गए नक्शे का आउटपुट उदाहरण:
/
___/
/
AS:0.5
जब तक आपके पास प्रोफ़ाइल और औसत स्थिरता नहीं है, तब तक प्रारूप महत्वपूर्ण नहीं है।
स्कोरिंग
क्या? क्या आप अपने और अपने दोस्त के जीवन को बचाने और दुनिया के शीर्ष पर प्रोग्राम करने वाले पहले प्रोग्रामर होने से बेहतर इनाम चाहते हैं? ठीक है ... यह कोड गोल्फ है, इसलिए बाइट्स जीत में सबसे छोटा कार्यक्रम है।
परीक्षण के मामलों
इनपुट:
\
/ /
/ /
/ \
\ \
/ \
/\
\/
\ /
\ \
\ \
\ \
/ /
आउटपुट:
/
___/
/
AS=0.5
इनपुट:
/
\ /
/ /
\ /
\ /
/ /
/\
\/
\ /
\ \
\ \
\ \
/ /
/
/
आउटपुट:
______/
AS=0.143 (1/7)
इनपुट:
/ \
\ \
/ /
/ \
/\
\/
\ /
\ /
\ /
/ \
आउटपुट:
/
/
/
_/
AS=0.8