The Nonary Game - це вигадана гра, що грається в однойменній трилогії відеоігор. Ваша мета - знайти, скільки гравців (у кращому випадку) можуть уникнути даної гри, за якомога менше байтів коду.
Правила гри
- Є 9 гравців, які пронумеровані від 1 до 9.
- Усі гравці починаються в одній кімнаті.
- Є будь-яка кількість дверей, кожна з номером від 1 до 9. Можуть бути дублікати або відсутні номера дверей.
- Двері - це односторонні з'єднання між кімнатами. Кожну двері можна використовувати лише один раз .
- Лише групи з 3 до 5 гравців можуть пройти через двері.
- Група може пройти через двері, лише якщо сума їх числа за модулем 9 збігається з номером модуля 9 дверей.
- Будь-який гравець, який проходить через 9 дверей, тікає (виграє).
Приклади
┌───┬───┬───┐
│ 6 4 9
│ < │ | |
│ 3 5 9
└───┴───┴───┘
<
являє собою вихідну точку. Усі гравці починають там.
У цій обстановці всі можуть втекти. Існують різні способи досягти цього, один з яких:
- [1, 2, 3, 4, 5] проходять через двері 6 ((1 + 2 + 3 + 4 + 5)% 9 = 6), а [6, 7, 8, 9] проходять через двері 3 ((6 + 7 + 8 + 9)% 9 = 3). Усі зустрічаються у другій кімнаті.
- [1, 2, 3, 7] проходять через двері 4, а [4, 5, 6, 8, 9] через двері 5.
- [1, 2, 3, 4, 8] пройти через одну з 9 дверей, [5, 6, 7, 9] пройти через іншу.
┌───┬───┐
│ │ |
│ < 8 9
│ │ |
└───┴───┘
Цього разу можна врятуватись не більше ніж 4 людини:
- [1, 3, 5, 8, 9] проходять через двері 8.
- [1, 3, 5, 9] пройти через двері 9.
Можливі й інші списки тих, хто вижив, таких як [2, 3, 4] або [1, 4, 6, 7], але більше ніж 4 людини не можуть врятуватися.
Змагання
Давши карту, виведіть максимальну кількість гравців, які можуть втекти.
- Не хвилюйтесь, вам не потрібно розбирати мої жахливі діаграми! Введення - це позначений графіком спрямований графік, який ви можете представити у будь-якому зручному форматі (набір ребер, матриця суміжності ...).
- Якщо для представлення потрібні мітки для приміщень, ви можете використовувати будь-який послідовний набір значень. Однак двері повинні бути представлені цілими числами 1 до 9.
- Вхід завжди матиме щонайменше одну 9 дверей. Усі 9 дверей завжди ведуть до виходу, тоді як інші двері ніколи не роблять.
- Ваше подання може бути функцією або повноцінною програмою.
- Стандартні лазівки заборонені.
Тестові справи
Вхідні дані відображаються у вигляді списків [номер дверей, від кімнати до кімнати] трійки, 0 - початкова кімната, а -1 - вихід. Якщо ви вирішите використовувати інший формат, вам доведеться їх належним чином перетворити.
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