Giới thiệu
Tôi muốn xây dựng một cái thang. Đối với điều này, tôi đã nhặt rác từ bãi rác hai tấm ván dài có lỗ, và tôi muốn đặt các bước vào những lỗ này. Tuy nhiên, các lỗ không được đặt đều, do đó các bước sẽ hơi khó khăn và tôi cảm thấy khó ước tính số lượng que tôi cần cho chúng. Công việc của bạn là làm các tính toán cho tôi.
Đầu vào
Đầu vào của bạn là hai vectơ bit, được đưa ra dưới dạng các mảng số nguyên, đại diện cho hai bảng. A 0
đại diện cho một phân đoạn của một aud ( đơn vị khoảng cách tùy ý ) không có lỗ và a 1
đại diện cho một phân đoạn của một aud với một lỗ duy nhất. Các mảng có thể có độ dài khác nhau và chứa một số 1
s khác nhau , nhưng chúng sẽ không trống.
Tôi sẽ xây dựng thang của tôi như sau. Đầu tiên, tôi đặt hai bảng cách nhau một cách chính xác và căn chỉnh các đầu bên trái của chúng. Đối với mỗi chỉ số i
, tôi đo khoảng cách giữa i
lỗ thứ của bảng i
thứ nhất với lỗ thứ của bảng thứ hai, cắt một miếng que và gắn nó vào giữa hai lỗ. Tôi dừng lại khi tôi hết lỗ trên một trong những tấm ván.
Đầu ra
Đầu ra của bạn là tổng số lượng thanh tôi cần cho các bước, được đo bằng kiểm toán. Đầu ra phải chính xác đến ít nhất sáu chữ số có nghĩa.
Thí dụ
Hãy xem xét các đầu vào [0,1,1,0,1,1,1,1,0,0]
và [1,0,0,1,1,1,0,0,1]
. Các bậc thang kết quả trông như thế này:
Tổng chiều dài của thanh trong thang này là 7.06449510224598
auds.
Quy tắc
Bạn có thể viết một hàm hoặc một chương trình đầy đủ. Số byte thấp nhất sẽ thắng và các sơ hở tiêu chuẩn không được phép.
Các trường hợp thử nghiệm
[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