Gegeven is een lijst p van strikt positieve gehele getallen, waaruit we een aantal lijsten willen construeren door elementen te halen uit die originele lijst p. De elementen uit p mogen hierbij maar 1 maal gebruikt worden (als een bepaalde waarde meerdere keren als element voorkomt in p, mag je natuurlijk die waarde meerdere keren gebruiken). De lijsten die we willen bouwen zijn steeds van de vorm [1, 2, ... N] met N vast en gegeven.

Schrijf een functie bouwLijsten() met als argumenten:

Het resultaat is het aantal lijsten van de vorm [1, 2, ..., N] dat kan gebouwd worden.

Voorbeeld

 
bouwLijsten([1, 2, 3, 1, 2, 3, 1, 2], 3) = 2
bouwLijsten([1, 1, 1, 2, 2, 1, 3, 3, 3], 3) = 2
bouwLijsten([1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 0], 5) = 3
bouwLijsten([1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 0], 4) = 4