Xoc de trens

Representem amb una cadena de caràcters str formada únicament pels
caràcters ’+’ i ’=’ els desplaçaments d’un tren cap a la dreta.
Anàlogament, representem amb una str formada únicament pels caràcters
’-’ i ’=’ els desplaçaments d’un tren cap a l’esquerra.

El caràcter ’+’ significa que el tren es mou una posició cap a la dreta
en aquest segon; el caràcter ’=’ significa que el tren roman immòbil
aquest segon; i el caràcter ’-’ indica que el tren es mou una posició
cap a l’esquerra.

Dissenya una funció choque(m1: str, m2: str, d: int) -> int que, donat
el desplaçament m1 d’un tren que es mou cap a la dreta, el desplaçament
m2 d’un altre tren que es mou cap a l’esquerra, amb m1 i m2 de la
mateixa longitud, i una distància inicial d > 0 que indica la separació
inicial entre ambdós trens, retorni el nombre de segons que triguen a
xocar. Si no xoquen, la funció ha de retornar 0.

S’entén que els trens xoquen en un instant si, després d’executar els
desplaçaments corresponents a aquell segon, la distància entre ells
esdevé menor que 0. Si estan a distància zero, encara no han xocat;
xoquen quan algun dels dos es mou i redueix la distància.

Els trens no reculen, és a dir, el tren de la dreta mai es mou cap a
l’esquerra, i el tren de l’esquerra mai es mou cap a la dreta.

Pots fer servir funcions com zip o range per resoldre el problema.

Exemple de sessió

Informació del problema

Autoria: Unknown
Traducció: infbesos

Generació: 2026-04-06T07:40:03.181Z

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