आप एक नए फ्रीवे के निर्माण के लिए जिम्मेदार हैं। हालांकि, यह पहाड़ी भूमि के माध्यम से होता है और इसलिए कई पुलों और सुरंगों की आवश्यकता होती है। फ्रीवे खुद एक ही स्तर पर रहना चाहिए।
इनपुट
आपको एक संक्षिप्त ASCII विवरण दिया गया है कि मानक इनपुट पर पहाड़ कैसे दिखते हैं, जैसे कि निम्नलिखित:
/\
/ \
/\ / \
/\ / \/ \
/ \ / \ /\
/ \/ \ / \
_ / \ /\ / \
\ / \ / \ / \ /\
\ / \ / \/ \/ \
\ / \ /
\/ \/
_
पहले कॉलम के निशान में शुरुआत और सड़क के स्तर। पर्वत श्रृंखला सन्निहित है और यदि अंतिम खंड एक पुल होगा, तो इसमें कई अक्षर भी हैं।
आप मान सकते हैं कि इनपुट की एक पंक्ति 100 वर्णों से अधिक लंबी नहीं है और यह कि 15 से अधिक लाइनें नहीं हैं। प्रत्येक पंक्ति में एक ही लंबाई होती है जो संभवतः अंत में अंतरिक्ष-गद्देदार होती है। सड़क कभी भी पहाड़ के भीतर या पुल के रूप में शुरू नहीं होती है। इनपुट में रोड टाइल के बाद पहली चीज या तो ढलान या नीचे है।
उत्पादन
आउटपुट एक ही पर्वत श्रृंखला है, सिवाय इसके कि अब एक सड़क है जहां पहले केवल इसकी शुरुआत थी। आउटपुट मानक आउटपुट पर दिया जाता है।
इसके लिए कई नियम हैं:
सड़क को इनपुट में बताए गए स्थान पर शुरू करना चाहिए और पूरे स्तर पर समान रहना चाहिए। इसे आसान बनाने के लिए, हमने कई प्रीमियर रोड टाइलें तैयार की हैं जो इस तरह दिखती हैं
_
:_______ \ / \/\/
सड़क का विस्तार पर्वत श्रृंखला के अंतिम छोर तक होना चाहिए (यानी इनपुट लाइनों की लंबाई तय करती है कि सड़क कितनी दूर तक जाती है)।
जब भी कोई पहाड़ जहां सड़क पर जाना हो, वहां सुरंगों को ड्रिल किया जाना चाहिए। सुरंग सीधे पर्वत के माध्यम से जाती है और प्रारंभ और अंत में छेद छोड़ देती है (अर्थात एक सुरंग पहाड़ की ढलान को उसके आरंभ में एक बंद कोष्ठक और उसके अंत में एक कोष्ठक के साथ बदल देती है)।
सुरंग छोड़ते हैं, ठीक है, पहाड़ में एक सुरंग जिसमें आमतौर पर एक छत होती है। हमारे प्रीमियर रोड टाइल्स को सौभाग्य से छत को मजबूत करने के लिए इस्तेमाल किया जा सकता है ताकि सुरंग गिर न जाए (सुरंग
_
को मजबूत करने के लिए सुरंग के ऊपर की रेखा का उपयोग करना पड़ता है ):/\ / \ /____\ ___)______(__ \/ \/
जब पहाड़ इसके ऊपर काफी ऊंचा नहीं होता है तो सुरंग को सुदृढ़ करने की आवश्यकता नहीं होती है। यह मेरे लिए भी अजीब लगता है, लेकिन मुझे बताया गया है कि प्रीमियर रोड टाइल्स काफी मजबूत होती हैं, यहां तक कि उस स्थिति में भी बाहर रखा जाता है (सुरंग के ऊपर कोई ढलान होने पर कोई सुरंग की छत नहीं खींची जाती है):
/\ /\/__\ ___)______(__ \/ \/
जब भी सड़क को एक खाई को पार करने की आवश्यकता होती है, तो पुलों की आवश्यकता होती है। छोटे पुलों के लिए प्रीमियर रोड की टाइलें काफी मजबूत हैं, लेकिन अभी भी पुल की शुरुआत और अंत में थोड़ा समर्थन की जरूरत है (पुल के नीचे पहली ढलान और आखिरी ऊपर की ओर ढलान को बदल दिया जाता है
Y
ताकि पुल के लिए एक समर्थन बीम हो। ):_____ Y Y \/
लंबे पुलों को अतिरिक्त समर्थन की आवश्यकता है। एक लंबा पुल वह है जिसमें एक पंक्ति में छह से अधिक असमर्थित रोड टाइल हैं। लंबे पुलों को उनके केंद्र में एक स्तंभ की आवश्यकता होती है। खंभे आसानी से हमारे पूर्वनिर्मित स्तंभ बीम के साथ निर्मित होते हैं जो इस तरह दिखते हैं
|
:। प्रत्येक खंभे को उनमें से दो की जरूरत होती है और वे नीचे की ओर नीचे की ओर होते हैं:_____________________________ Y || Y \ /\ || /\ /\/ \ /\ / \||/ \ /\/ \/ \/ \/ \/
चूंकि इनपुट केवल पूरे पर्वत श्रृंखला के एक हिस्से का प्रतिनिधित्व करता है, जिसके माध्यम से फ्रीवे को बनाने की आवश्यकता होती है, यह पुल या सुरंग के बीच में अचानक समाप्त हो सकता है। लंबे खंड का नियम अभी भी अंतिम खंड के लिए लागू होता है और आप मान सकते हैं कि दिए गए इनपुट से परे पहला भाग फिर से पुल का समर्थन करता है।
उपरोक्त नियमों के बाद हमें अपने इनपुट के लिए निम्नलिखित मिलते हैं:
/\
/ \
/\ / \
/\ / \/ \
/ \ / \ /\
/____\/______________\ /__\
_________)______________________(________)(____)____(______
Y Y Y Y Y Y Y YY
\ / \ / \/ \/ \
\ / \ /
\/ \/
चरित्र गणना जीत से सबसे छोटा कोड। सत्यापन के लिए लाइनों में अनुगामी व्हाट्सएप की अनदेखी की जाती है।
नमूना इनपुट 1
_
\ /\
\ / \
\ / \
\ /\ / \ /\ /
\ /\ / \ / \ /\ /\/ \ /
\ / \ / \/ \ / \/ \/\ /
\/ \ / \ / \/
\ / \/
\/
नमूना उत्पादन 1
____________________________________________________________
Y || YY ||
\ || / \ ||
\ || / \ ||
\ || /\ / \ || /\ /
\ /\ || / \ / \ /\ |/\/ \ /
\ / \ || / \/ \ / \/ \/\ /
\/ \ || / \ / \/
\||/ \/
\/
नमूना इनपुट 2
/\ /\
/ \/ \ /
/\ / \ /\ /
/\ / \ / \/ \ /
/ \ / \/\ / \ /\ /
/ \/ \ / \ / \ /
_/ \ / \/ \/
\ /
\ /\/
\ /\ /
\/ \ /
\ /
\/
नमूना आउटपुट 2
/\ /\
/ \/ \ /
/\ / \ /\ /
/\ / \ / \/ \ /
/ \ / \/\ / \ /\ /
/____\/________\ /__________________\ /__\ /____
_)________________(__________________)____________________()____()_____
Y || Y
\ || /\/
\ /\ || /
\/ \|| /
\| /
\/
ध्यान दें
संदर्भ समाधान के साथ तुलना में आउटपुट में अनुगामी रिक्त स्थान की अनदेखी की जाती है।
जीतने की स्थिति
सबसे कम कोड जीतता है, जैसा कि गोल्फ में प्रथागत है। एक टाई के मामले में, पहले वाला समाधान जीत जाता है।
परीक्षण के मामलों
समान परीक्षण मामलों वाले दो परीक्षण स्क्रिप्ट हैं:
मंगलाचरण दोनों मामलों में है: <test script> <my program> [arguments]
जैसे ./test ruby bridges.rb
या ./test.ps1 ./bridges.exe
।
एक और नोट
यह कार्य 2011-डब्ल्यू 24 के दौरान मेरे विश्वविद्यालय में आयोजित एक गोल्फ प्रतियोगिता का हिस्सा था। हमारे प्रतियोगियों के स्कोर और भाषाएँ इस प्रकार थीं:
- 304 - पर्ल
- 343 - सी
- 375 - सी
- 648 - अजगर
हमारा अपना समाधान (वेंटरो के लिए धन्यवाद) था
- 262 - रूबी