परिचय
मैं एक सीढ़ी बनाना चाहता हूं। इसके लिए, मैंने कबाड़ के दो लंबे बोर्डों से उनमें छेद के साथ मैला ढोया है, और मैं इन छेदों पर कदम रखना चाहता हूं। हालांकि, छेद समान रूप से नहीं रखे गए हैं, इसलिए चरण थोड़ा विजयी होंगे, और मुझे उनके लिए छड़ी की मात्रा का अनुमान लगाना कठिन है। आपका काम मेरे लिए गणना करना है।
इनपुट
आपका इनपुट दो बिट वैक्टर हैं, जो पूर्णांक के सरणियों के रूप में दिए गए हैं, जो दो बोर्डों का प्रतिनिधित्व करते हैं। एक छेद के बिना 0
एक ऑड (खंड की मनमानी इकाई ) के 1
एक खंड का प्रतिनिधित्व करता है , और एक एकल छेद के साथ एक ऑड के एक सेगमेंट का प्रतिनिधित्व करता है। सरणियाँ अलग-अलग लंबाई की हो सकती हैं और उनमें अलग-अलग संख्याएँ होती हैं 1
, लेकिन वे खाली नहीं होंगी।
मैं अपनी सीढ़ी का निर्माण इस प्रकार करूंगा। सबसे पहले, मैं दो बोर्डों को एक ऑड के अलावा अलग करता हूं, और उनके बाएं छोर को संरेखित करता हूं। प्रत्येक सूचकांक के लिए i
, मैं i
पहले बोर्ड के वें छेद के बीच की दूरी i
को दूसरे बोर्ड के वें छेद के साथ मापता हूं , रॉड के एक टुकड़े को काटता हूं , और इसे दो छेदों के बीच संलग्न करता हूं । एक बार जब मैं किसी एक बोर्ड में छेद से बाहर निकलता हूं तो रुक जाता हूं।
उत्पादन
आपका आउटपुट रॉड की कुल मात्रा है जिसे मुझे स्टड के लिए आवश्यकता होगी, जिसे आउड्स में मापा गया है। आउटपुट कम से कम छह महत्वपूर्ण अंकों के लिए सही होना चाहिए।
उदाहरण
इनपुट पर विचार करें [0,1,1,0,1,1,1,1,0,0]
और [1,0,0,1,1,1,0,0,1]
। परिणामी सीढ़ी इस तरह दिखती है:
इस सीढ़ी में छड़ की कुल लंबाई 7.06449510224598
औड्स है।
नियम
आप एक फ़ंक्शन या पूर्ण प्रोग्राम लिख सकते हैं। सबसे कम बाइट गिनती जीतता है, और मानक खामियों को रोक दिया जाता है।
परीक्षण के मामलों
[0] [0] -> 0.0
[0] [1,0] -> 0.0
[1,0,0] [1,1,1,1,1] -> 1.0
[0,1,0,1] [1,0,0,1] -> 2.414213562373095
[0,1,1,0,1,1,1,1,0,0] [1,0,0,1,1,1,0,0,1] -> 7.06449510224598
[1,1,1,1,1] [0,0,1,1,0,1,0,0,1] -> 12.733433128760744
[0,0,0,1,0,1,1,0,0,0,1,1,1,0,0,1,0,1,1,0,0,0,1,0] [0,0,1,1,0,1,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1] -> 20.38177416534678