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 zitten

  • list 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

voorbeeld 1

assert nijlpaard_diner(2, [1,3,7] ) == 2

voorbeeld 2

assert nijlpaard_diner(4, [3,5,1,12,10] ) == 3

voorbeeld 3

(Informatica Olympiade 23-24)