The Nonary Game ist ein fiktives Spiel, das in der gleichnamigen Videospiel-Trilogie gespielt wird. Ihr Ziel ist es, in möglichst wenigen Byte Code herauszufinden, wie viele Spieler (bestenfalls) einem bestimmten Spiel entkommen können.
Spielregeln
- Es gibt 9 Spieler, nummeriert von 1 bis 9.
- Alle Spieler beginnen im selben Raum.
- Es gibt eine beliebige Anzahl von Türen mit einer Zahl von 1 bis 9. Möglicherweise sind doppelte oder fehlende Türnummern vorhanden.
- Tür sind Einweg Verbindungen zwischen den Räumen. Jede Tür kann nur einmal benutzt werden .
- Nur Gruppen von 3 bis 5 Spielern können eine Tür passieren.
- Eine Gruppe kann nur durch eine Tür gehen, wenn die Summe ihrer Zahlen modulo 9 mit der Zahl modulo 9 der Tür übereinstimmt.
- Jeder Spieler, der durch eine 9 Tür geht, entkommt (gewinnt).
Beispiele
┌───┬───┬───┐
│ 6 4 9
│ < │ | |
│ 3 5 9
└───┴───┴───┘
<
stellt den Ausgangspunkt dar. Alle Spieler beginnen dort.
In dieser Einstellung kann jeder entkommen. Es gibt verschiedene Möglichkeiten, dies zu erreichen. Eine davon ist:
- [1, 2, 3, 4, 5] gehen durch Tür 6 ((1 + 2 + 3 + 4 + 5)% 9 = 6), während [6, 7, 8, 9] durch Tür 3 ((6 + 7 + 8 + 9)% 9 = 3). Alle treffen sich im zweiten Raum.
- [1, 2, 3, 7] gehen durch Tür 4, während [4, 5, 6, 8, 9] durch Tür 5 gehen.
- [1, 2, 3, 4, 8] gehen durch eine der 9 Türen, [5, 6, 7, 9] gehen durch die andere.
┌───┬───┐
│ │ |
│ < 8 9
│ │ |
└───┴───┘
Diesmal können höchstens 4 Personen entkommen:
- [1, 3, 5, 8, 9] gehen durch Tür 8.
- [1, 3, 5, 9] durch Tür 9 gehen.
Andere Listen von Überlebenden wie [2, 3, 4] oder [1, 4, 6, 7] sind möglich, aber mehr als 4 Personen können nicht entkommen.
Die Herausforderung
Gib bei einer gegebenen Karte die maximale Anzahl von Spielern aus, die entkommen können.
- Keine Sorge, Sie müssen meine schrecklichen Diagramme nicht analysieren! Die Eingabe ist eine beschriftete gerichtete Grafik, die Sie in jedem geeigneten Format (Kantensatz, Adjazenzmatrix ...) darstellen können.
- Wenn für Ihre Darstellung Beschriftungen für Räume erforderlich sind, können Sie einen beliebigen Satz von Werten verwenden. Türen müssen jedoch durch die ganzen Zahlen 1 bis 9 dargestellt werden.
- Der Eingang hat immer mindestens eine 9 Tür. Alle 9 Türen führen immer zum Ausgang, während andere Türen dies niemals tun.
- Ihre Einreichung kann eine Funktion oder ein vollständiges Programm sein.
- Standardlücken sind verboten.
Testfälle
Eingänge werden als Listen von [Türnummer, von Raum zu Raum] Drillingen angezeigt, wobei 0 der Startraum und -1 der Ausgang ist. Wenn Sie sich für ein anderes Format entscheiden, müssen Sie diese entsprechend konvertieren.
Input Output
[[6, 0, 1], [3, 0, 1], [4, 1, 2], [5, 1, 2], [9, 2, -1], [9, 2, -1]] 9
[[8, 0, 1], [9, 1, -1]] 4
[[9, 0, -1]] 5
[[2, 0, 1], [1, 1, 2], [9, 2, -1]] 0
[[2, 0, 1], [3, 1, 2], [9, 2, -1]] 3
[[1, 0, 1], [9, 1, -1], [1, 0, 2], [9, 2, -1]] 4
[[2, 0, 1], [3, 0, 1], [5, 1, 2], [4, 0, 2], [9, 2, -1], [9, 2, -1]] 8
[[3, 0, 1], [4, 0, 1], [5, 0, 1], [9, 1, -1], [7, 1, 2], [9, 2, -1]] 7
[[1, 0, 1], [2, 0, 1], [4, 0, 1], [9, 1, -1], [8, 1, 2], [9, 2, -1]] 6
[[6, 0, 1], [7, 0, 1], [9, 1, -1], [9, 1, -1]] 7