Giriş
Bir merdiven inşa etmek istiyorum. Bunun için hurdalıktan iki adet uzun tahtadan delikler açılmış ve adımları bu deliklere yerleştirmek istiyorum. Ancak, delikler düzgün bir şekilde yerleştirilmemiştir, bu nedenle adımlar biraz riskli olacaktır ve onlar için ihtiyaç duyduğum çubuk miktarını tahmin etmekte zorlanıyorum. Senin işin benim için hesaplamaları yapmak.
Giriş
Girişiniz, iki kartı temsil eden tamsayılar dizisi olarak verilen iki bitlik vektörlerdir. A , bir deliksiz 0
bir aud parçasını ( isteğe bağlı bir mesafe birimi ) 1
temsil eder ve a, tek bir delikli bir aud parçasını temsil eder. Diziler farklı uzunluklarda olabilir ve farklı sayıda 1
s içerebilir , ancak boş olmayacaktır.
Merdivenimi şu şekilde inşa edeceğim. İlk önce, iki tahtayı tam olarak birer aralık ayırın ve sol uçlarını hizaladım. Her endeks için i
, i
birinci panelin i
inci deliği ile ikinci panelin delik deliği arasındaki mesafeyi ölçüyorum, bir parça çubuk kesiyorum ve iki deliğin arasına tutturuyorum. Bir keresinde tahtalardan birinde delikler bitince duruyorum.
Çıktı
Çıktınız, auds cinsinden ölçülen adımlar için ihtiyaç duyacağım toplam çubuk miktarıdır. Çıktı en az altı önemli hane için doğru olmalıdır.
Örnek
Girişleri [0,1,1,0,1,1,1,1,0,0]
ve [1,0,0,1,1,1,0,0,1]
. Ortaya çıkan merdiven şöyle görünür:
Çubuğun bu merdiven içindeki toplam uzunluğu 7.06449510224598
aud'dur.
kurallar
Bir işlev veya tam bir program yazabilirsiniz. En düşük bayt sayısı kazanır ve standart boşluklar izin verilmez.
Test Kılıfları
[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