บทนำ
ฉันต้องการสร้างบันได สำหรับเรื่องนี้ฉันได้ไปจากที่เก็บขยะสองแผ่นยาวที่มีรูอยู่ในนั้นและฉันต้องการที่จะวางขั้นตอนลงในหลุมเหล่านี้ อย่างไรก็ตามหลุมไม่ได้ถูกวางอย่างเท่าเทียมกันดังนั้นขั้นตอนจะค่อนข้างสั่นคลอนเล็กน้อยและฉันพบว่ามันยากที่จะประเมินจำนวนก้านที่ฉันต้องการสำหรับพวกเขา งานของคุณคือการคำนวณสำหรับฉัน
อินพุต
อินพุตของคุณคือเวกเตอร์สองบิตที่กำหนดเป็นอาร์เรย์ของจำนวนเต็มซึ่งเป็นตัวแทนของสองบอร์ด A 0
หมายถึงส่วนของหนึ่ง aud ( หน่วยระยะทางโดยพลการ ) โดยไม่มีรูและ a 1
หมายถึงเซ็กเมนต์ของหนึ่ง aud ด้วยหนึ่งหลุม อาร์เรย์อาจมีความยาวแตกต่างกันและมีจำนวน1
s แตกต่างกันแต่จะไม่ว่างเปล่า
ฉันจะสร้างบันไดของฉันดังนี้ ครั้งแรกฉันวางบอร์ดสองแผ่นแยกกันหนึ่งเสียงและจัดวางที่ปลายด้านซ้าย สำหรับแต่ละดัชนี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