Choque de trenes

Representamos con una cadena de caracteres str formada únicamente por
los caracteres ’+’ e ’=’ los desplazamientos de un tren hacia la
derecha. Análogamente, representamos con una str formada únicamente por
’-’ e ’=’ los desplazamientos de un tren hacia la izquierda.

El carácter ’+’ significa que el tren se mueve una posición a la derecha
en ese segundo; el carácter ’=’ significa que el tren permanece inmóvil
ese segundo; y el carácter ’-’ indica que el tren se mueve una posición
a la izquierda.

Diseña una función choque(m1: str, m2: str, d: int) -> int que, dado el
desplazamiento m1 de un tren moviéndose hacia la derecha, el
desplazamiento m2 de otro tren moviéndose hacia la izquierda, con m1 y
m2 de la misma longitud, y una distancia inicial d > 0 que indica la
separación inicial entre ambos trenes, devuelva el número de segundos
que tardan en chocar. Si no chocan, la función debe devolver 0.

Se entiende que los trenes chocan en un instante si, después de ejecutar
los desplazamientos correspondientes a ese segundo, la distancia entre
ellos se vuelve menor que 0. Si están a distancia cero, aún no han
chocado; chocarán cuando alguno de los dos se mueva y reduzca la
distancia.

Los trenes no retroceden, es decir, el tren de la derecha nunca se mueve
hacia la izquierda, y el tren de la izquierda nunca se mueve hacia la
derecha.

Puedes usar funciones como zip o range para resolver el problema.

Ejemplo de sessión

Información del problema

Autoría: infbesos

Generación: 2026-04-06T07:39:57.572Z

© Jutge.org, 2006–2026.
https://jutge.org
