introduction
Je veux construire une échelle. Pour cela, j'ai récupéré de la casse deux longues planches avec des trous, et je veux placer les marches dans ces trous. Cependant, les trous ne sont pas placés uniformément, donc les étapes seront un peu bancales, et j'ai du mal à estimer la quantité de tige dont j'ai besoin. Votre travail consiste à faire les calculs pour moi.
Contribution
Votre entrée est des vecteurs à deux bits, donnés sous forme de tableaux d'entiers, qui représentent les deux cartes. A 0
représente un segment d'un aud ( unité arbitraire de distance ) sans trou, et a 1
représente un segment d'un aud avec un seul trou. Les tableaux peuvent être de longueurs différentes et contenir un nombre différent de 1
s, mais ils ne seront pas vides.
Je vais construire mon échelle comme suit. Tout d'abord, je place les deux planches exactement à une distance l'une de l'autre et j'aligne leurs extrémités gauches. Pour chaque index i
, je mesure la distance entre le i
trou de la première planche avec le i
trou de la deuxième planche , je coupe un morceau de tige et je le fixe entre les deux trous. Je m'arrête une fois que je n'ai plus de trous dans l'une des planches.
Sortie
Votre sortie est la quantité totale de tige dont j'ai besoin pour les étapes, mesurée en auds. La sortie doit être correcte avec au moins six chiffres significatifs.
Exemple
Considérez les entrées [0,1,1,0,1,1,1,1,0,0]
et [1,0,0,1,1,1,0,0,1]
. L'échelle résultante ressemble à ceci:
La longueur totale de la tige dans cette échelle est 7.06449510224598
auds.
Règles
Vous pouvez écrire soit une fonction soit un programme complet. Le nombre d'octets le plus bas l'emporte et les failles standard sont interdites.
Cas de test
[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