Vervolgens moet je de grootste bassins vinden, zodat je weet welke de belangrijkste gebieden zijn die je moet vermijden.
Een bassin wordt gevormd door alle locaties waarvan de rook naar één enkel dieptepunt naar beneden stroomt. Daarom heeft elk dieptepunt een bassin, hoewel sommige bassins erg klein kunnen zijn. Locaties met hoogte 9
tellen niet mee als een bassin, en alle andere locaties zullen altijd deel uitmaken van precies één bassin.
De grootte van een bassin is het aantal locaties binnen het bassin, inclusief het dieptepunt. Het voorgaande voorbeeld heeft vier bassins.
Het bassin linksboven met grootte 3
:
2199943210
3987894921
9856789892
8767896789
9899965678
Het bassin rechtsboven met grootte 9
:
2199943210
3987894921
9856789892
8767896789
9899965678
Het middelste bassin met grootte 14
:
2199943210
3987894921
9856789892
8767896789
9899965678
Het bassin rechtsonder met grootte 9
:
2199943210
3987894921
9856789892
8767896789
9899965678
Vind de drie grootste bassins en vermenigvuldig hun groottes. In het voorgaande voorbeeld is dit \(9 \times 14 times 9 = 1134\).
Wat krijg je als je de groottes van de drie grootste bassins met elkaar vermenigvuldigt? Bepaal dit op de volgende manier:
basin
waaraan de padnaam (String
) moet doorgegeven worden van een tekstbestand met een hoogtekaart van de bodem van de nabijgelegen grotten. De functie moet het product (Int
) van de groottes van de drie grootste bassins teruggeven.In deze interactieve sessie gaan we ervan uit dat de tekstbestanden caves01.txt
1 en caves02.txt`2 zich in de huidige directory bevinden.
> basins("displays01.txt")
1134
> basins("displays02.txt")
916688