Basis#
De nacht van het nijlpaard#
Nijlpaarden houden van een goede maaltijd. Maar ze hebben wel ruimte nodig voor zichzelf.
Elke nacht maakt de chef-kok n maaltijden klaar. Er is een lange tafel met aan één kant plaatsen die oplopend genummerd zijn. Elke maaltijd wordt willekeurig op één van die plaatsen neergezet.
De ceremoniemeester bepaalt daarna de minimale sociale afstand k tussen de nijlpaarden aan tafel. Als k bijvoorbeeld 2 is mogen twee nijlpaarden niet naast elkaar zitten maar moet er minstens 1 vrije plaats tussen hen in zitten .
De nijlpaarden komen binnen en kunnen gaan zitten op een plek waar een maaltijd staat als die plaats voldoet aan de minimale sociale afstand tot andere nijlpaarden. De ceremoniemeester zorgt ervoor dat het maximale aantal nijlpaarden deel kan nemen aan de maaltijd.
Schrijf de functie nijlpaard_diner(social_distance, loc_diner )
.
int
social_distance
geeft aan hoever de nijlpaarden uit elkaar moeten zittenlist
loc_diner
geeft aan waar op de tafel de maaltijden zijn neergezet.
De functie geeft terug wat de maximale hoeveelheid nijlpaarden zijn dat aan de tafel kan zitten. Maak gebruik van recursie
voorbeelden#
assert nijlpaard_diner(1, [3,2,3] ) == 2
assert nijlpaard_diner(2, [1,3,7] ) == 2
assert nijlpaard_diner(4, [3,5,1,12,10] ) == 3
(Informatica Olympiade 23-24)