De buschauffeurs van een klein stadje staan bekend als echte roddeltantes. Wanneer twee of meer bussen op hetzelfde ogenblik aan dezelfde stopplaats halt houden, dan stappen de chauffeurs snel uit om alle nieuwe roddels die ze kennen uit te wisselen. Op die manier verspreiden de nieuwtjes zich als een lopend vuurtje door de stad.
Elke stopplaats wordt genummerd met een uniek natuurlijk getal. Zoals aangegeven in bovenstaande afbeelding, rijdt elke bus een lusvormige route doorheen de stad. De route van een bus kan dus omschreven worden door de reeks getallen die de opeenvolgende stopplaatsen aanduiden. Na de laatste stopplaats in de reeks rijdt de bus verder naar de eerste stopplaats uit de reeks. Eén enkele lus van een busroute kan eenzelfde stopplaats ook verschillende keren aandoen, bijvoorbeeld als de bus een achtvormige route aflegt. De eerste stopplaats uit de reeks is de stopplaats waar de bus 's morgens vertrekt. Chauffeurs die 's morgens aan dezelfde stopplaats vertrekken wisselen daar ook hun roddels uit. Een bus met route (3, 6, 9) doet dus achtereenvolgens de stopplaatsen 3 9 6 3 9 6 3 9 6 … aan. Een bus met stopplaatsen (1, 2, 3, 2) doet achtereenvolgens de stopplaatsen 1 2 3 2 1 2 3 2 1 2 3 2 … aan.
's Morgens heeft elke buschauffeur één nieuwe roddel opgevangen die de andere buschauffeurs nog niet kennen. Veronderstel dat de tijd tussen twee opeenvolgende stopplaatsen telkens 1 minuut bedraagt, en dat het uitwisselen van de roddels en het stilstaan geen tijd kost. Na hoeveel minuten zijn alle buschauffeurs dan op de hoogte van alle nieuwe roddels?
Om dit te bepalen, schrijf je een functie busroddels waaraan een tuple moet doorgegeven worden die de route van elke bus bevat. Elke busroute is zelf een tuple van natuurlijke getallen (int), die de opeenvolgende stopplaatsen van één enkele lus aanduiden. De functie moet een natuurlijk getal (int) teruggeven dat aangeeft na hoeveel minuten alle buschauffeurs op de hoogte zijn van alle nieuwe roddels. Als de chauffeurs er niet in slagen om alle roddels uit te wisselen voor het einde van de dag (dus na $$24 \times 60 = 1440$$ minuten), dan moet de functie de waarde -1 teruggeven.
>>> busroddels(((1, 2, 3, 4, 5), (5, 6, 7, 8), (3, 9, 6)))
12
>>> busroddels(((1, 2, 3), (2, 1, 3), (2, 4, 5, 3)))
4
>>> busroddels(((1, 2), (2, 1)))
-1