संतुलनकारी कार्य
एक देखा-देखा (माना जाता है कि फ्रांसीसी 'सी-आईका', जिसका अर्थ है 'यह-वह') समान रूप से सर्वव्यापी स्लाइड और स्विंग के साथ, खेल के मैदान के पवित्र ट्रिनिटी का एक तिहाई बनाता है। एक देखा-देखा सही संतुलन में है अगर, और केवल अगर, प्रत्येक पक्ष पर क्षणों का योग बराबर है। एक देखा-देखा इसलिए कम पल राशि के साथ पक्ष में एक विशिष्ट मात्रा में वजन जोड़कर संतुलित किया जा सकता है; इसे प्राप्त करना इस चुनौती के लिए आपका लक्ष्य है।
चुनौती
आपकी चुनौती इनपुट के रूप में एक देखा-देखा चित्रण करना है और इसे फिर से आउटपुट करना है, साथ ही इसे संतुलित करने के लिए देखा-देखी के एक छोर पर वजन जोड़ा गया है।
इनपुट
आपका कार्यक्रम किसी भी उचित प्रारूप में, ASCII देखना-देखा जाना चाहिए जैसे कि निम्नलिखित:
100 100
-------------------
^
पहली पंक्ति में दो संख्याएँ होती हैं, जिनमें से प्रत्येक को देखा-देखी पर भार होता है। बिल्कुल एक वजन प्रत्येक पक्ष पर मौजूद है, प्रत्येक अपने तख़्त के किनारे के छोर पर अभिनय करता है। वजन पूर्णांक होने की गारंटी है, और हमेशा तख़्त के अपने अंत के साथ संरेखित करें। ये संख्या कभी भी पूर्णांक ( ^
) को ओवरलैप नहीं करेगी ।
दूसरी पंक्ति दृश्य-आरा के 'तख्ती' का प्रतिनिधित्व करती है। प्रत्येक डैश ( -
) एक दूसरे की डैश के बराबर लंबाई का प्रतिनिधित्व करता है, डैश के एकमात्र अपवाद के साथ सीधे पूर्णक्रम ( ^
) पर, जिसकी कोई लंबाई नहीं है।
तीसरी पंक्ति दृश्य-आरी के फुलक्रैम का प्रतिनिधित्व करती है। इस फुलक्रैम को एकमात्र चरित्र द्वारा चिह्नित किया जाता है जो इस लाइन पर एक स्थान नहीं है, जो एक circumflex ('^') है। फुलक्रम को एक वैध इनपुट में तख़्त की लंबाई के साथ कहीं भी रखा जा सकता है, जब तक कि पर्याप्त जगह न रह जाए ताकि वेट का प्रतिनिधित्व करने वाले नंबर इनपुट या आउटपुट में फुलक्रम को ओवरलैप न करें।
इनपुट की तीन पंक्तियों के लिए गारंटी है, और इसमें वर्ण-वर्ण से पहले या बाद में कोई भी श्वेत-स्थान नहीं है, जो दृश्य-देखा (छोड़कर, निश्चित रूप से, तीसरी पंक्ति, जिसकी आवश्यकता है) का गठन होता है।
उत्पादन
आउटपुट के लिए, एक ही सी-सॉ चित्रण को stdout में मुद्रित किया जाना चाहिए, लेकिन वेट के एक (और केवल एक) को एक बड़े वजन के साथ बदल दिया गया, ताकि सी-व्यू को संतुलित किया जा सके। केवल पूर्णांक का उपयोग करके यह संभव बनाने के लिए इनपुट की गारंटी दी जाती है। इसलिए, दशमलव बिंदुओं या अन्य समान सूचनाओं के बिना वज़न दिखाया जाना चाहिए। यदि आपकी भाषा stdout का उपयोग नहीं करती है तो आपको आउटपुट पर समुदाय / मेटा सर्वसम्मति से जाना चाहिए। अनुगामी newlines ठीक हैं, लेकिन चित्रण प्रारूप में कोई अन्य परिवर्तन संभवतः ठीक नहीं हैं।
दृष्टांत
परीक्षण इनपुट और पत्राचार आउटपुट
इनपुट 1
12 22
--------------------
^
आउटपुट 1
12 26
--------------------
^
इनपुट 2
42 42
-----------
^
आउटपुट 2
42 42
-----------
^
इनपुट 3
3 16
----------------
^
आउटपुट 3
14 16
----------------
^
इनपुट 4
1 56
-------------------
^
आउटपुट 4
196 56
-------------------
^
संदर्भ कार्यान्वयन - पायथन 3
# Takes a list of strings as input
def balance_seesaw(lines):
weights = [int(w.strip()) for w in lines[0].split()]
length = len(lines[1])
pivot = lines[2].find("^")
left_length = pivot
right_length = length - 1 - pivot
left_torque = weights[0] * left_length
right_torque = weights[1] * right_length
if left_torque > right_torque:
weights[1] = left_torque // right_length
elif right_torque > left_torque:
weights[0] = right_torque // left_length
weights = [str(w) for w in weights]
string_gap = " " * (length - sum(len(w) for w in weights))
lines[0] = weights[0] + string_gap + weights[1]
print("\n".join(lines))
balance_seesaw(["1 56",
"-------------------",
" ^ "])
नियम
यह कोड-गोल्फ है , इसलिए सबसे छोटा कोड बाइट्स में गिना जाता है। मेटा की जाँच करें यदि बाइट्स गिनना आपकी भाषा में अजीब है।
मानक नियम / कमियां लागू होती हैं।
इनपुट एक उचित प्रारूप में लिया जाना चाहिए। उचित स्वरूपों की एक गैर-विस्तृत सूची निम्नानुसार दी गई है:
- न्यूलाइन वर्णों द्वारा अलग की गई लाइनों के साथ एक एकल स्ट्रिंग
- तार की एक सूची, प्रत्येक स्ट्रिंग एक रेखा का प्रतिनिधित्व करती है
- एक 2 डी सरणी या पात्रों का मैट्रिक्स
संबंधित चुनौतियाँ
- एक देखा-देखा पर वजन का एक सेट संतुलन - समागम द्वारा प्रस्तावित अगस्त 2015