Extra#
Pijlenpad#
Pijlenpad is een puzzel van Janko. Deze maakt gebruik van een vierkant raster van n bij n vakjes. In elk vakje behalve dat rechtsonder staat een pijl; in sommige vakjes staat al een getal. Linksboven staat het getal 1, rechtsonder staat het getal \(n^2\).
Alle getallen van 1 tot en met \(n^2\) moeten elk eenmaal worden ingevuld. Als in een cel een bepaald getal staat kun je de pijl volgen om het opvolgende getal te vinden.
Een puzzle wordt aangegeven met behulp van een lol. Elke lijst in de lol bestaat uit lijstjes dat de cellen van de puzzle moeten voorstellen. Elke cel heeft informatie over de pijl en een eventueel getal dat in de cel staat. Als een getal niet bekend is, dan staat er 0.
voorbeeld 1
puzzle = [
[[1,"ZO"],[0,"ZW"],[0,"Z"]],
[[0,"Z"],[0,"N"],[0,"N"]],
[[1,"O"],[0,"NO"],[9,""]]
]
Levert de puzzle
De oplossing voor deze puzzle is:
puzzle = [
[[1,"ZO"],[3,"ZW"],[8,"Z"]],
[[4,"Z"],[2,"N"],[7,"N"]],
[[5,"O"],[6,"NO"],[9,""]]
]
Voorbeeld 2
puzzle = [
[[1,"Z"],[0,"O"],[0,"ZO"],[0,"W"],[0,"W"]],
[[0,"NO"],[0,"ZO"],[0,"O"],[0,"Z"],[0,"ZW"]],
[[0,"ZO"],[0,"ZW"],[0,"N"],[0,"ZW"],[0,"ZW"]],
[[17,"N"],[0,"NO"],[0,"NW"],[0,"NW"],[0,"N"]],
[[O,"O"],[0,"W"],[0,"W"],[0,"NO"],[25,""]]
]
Levert de puzzle
De oplossing voor deze puzzle is:
puzzle = [
[[1,"Z"],[3,"O"],[6,"ZO"],[5,"W"],[4,"W"]],
[[2,"NO"],[24,"ZO"],[21,"O"],[22,"Z"],[13,"ZW"]],
[[18,"ZO"],[16,"ZW"],[20,"N"],[14,"ZW"],[7,"ZW"]],
[[17,"N"],[19,"NO"],[15,"NW"],[23,"NW"],[12,"N"]],
[[10,"O"],[9,"W"],[8,"W"],[11,"NO"],[25,""]]
]
Schrijf een functie pijlenpuzzle(board)
dat bovenstaande probleem oplost.
(Informatica olympiade 2021)