Deze editie van de code challenge speelt zich af in een magische dierentuin. Er zijn drie diersoorten aanwezig: geiten, wolven en leeuwen. In tegenstelling tot wat we gewend zijn, bevinden zich in deze dierentuin geen hekken. Je voelt hem al aankomen… dit wordt een gevecht op leven en dood.
De sterken eten de zwakken: het is ieder voor zich. De dieren eten elkaar niet zomaar op; het is tenslotte een magische dierentuin. Nee, wanneer een dier een dier van een andere soort op eet, verandert het zelf ook van soort. De volgende gebeurtenissen kunnen plaatsvinden:
– een wolf eet een geit op en verandert daarna zelf in een leeuw
– een leeuw eet een geit op en verandert in een wolf
– een leeuw eet een wolf en verandert in een geit
Diersoorten vertonen onderling dus geen kannibalistische neigingen. De vraag is nu: gegeven een begin-configuratie, wat is het maximaal aantal dieren dat in vrede naast elkaar kan leven in de magische dierentuin? Stel je begint met 17 geiten, 55 wolven en 6 leeuwen. Hoeveel van welke soort blijven uiteindelijk over? In dit voorbeeld zou je eindigen met maximaal 23 leeuwen en geen geiten of wolven. Loop de stappen die tot dit resultaat leiden zelf na om beter te begrijpen wat er gevraagd wordt.
Voor deze challenge is het de bedoeling om een programma te schrijven wat gegeven een tupel (geiten, wolven, leeuwen) ook weer een tupel oplevert met de aantallen in de eindsituatie. Het gegeven voorbeeld heeft dus als input (17, 55, 6) en als output (0, 0, 23). We zijn dus op zoek naar een maximale, stabiele populatie. Zoals gebruikelijk lever je de code op. Voeg daar de output voor (2055, 2006, 2017) aan toe als antwoord. Succes!