The Nonary Game adalah gim fiksi yang dimainkan dalam trilogi video game dengan nama yang sama. Tujuan Anda adalah untuk menemukan berapa banyak pemain (yang terbaik) yang dapat lolos dari permainan yang diberikan, dalam kode sesedikit mungkin.
Aturan mainnya
- Ada 9 pemain, bernomor 1 hingga 9.
- Semua pemain mulai di ruangan yang sama.
- Ada sejumlah pintu, masing-masing dengan nomor 1 hingga 9. Mungkin ada nomor pintu rangkap atau hilang.
- Pintu adalah koneksi satu arah antara kamar. Setiap pintu hanya bisa digunakan satu kali .
- Hanya grup dengan 3 hingga 5 pemain yang bisa melewati satu pintu.
- Suatu kelompok hanya dapat melewati pintu jika jumlah dari angka-angka mereka modulo 9 cocok dengan nomor pintu modulo 9.
- Setiap pemain yang melewati pintu 9 lolos (menang).
Contohnya
┌───┬───┬───┐
│ 6 4 9
│ < │ | |
│ 3 5 9
└───┴───┴───┘
<
mewakili titik awal. Semua pemain mulai dari sana.
Dalam pengaturan ini, semua orang bisa melarikan diri. Ada berbagai cara untuk mencapai hal ini, salah satunya adalah:
- [1, 2, 3, 4, 5] menuju pintu 6 ((1 + 2 + 3 + 4 + 5)% 9 = 6), sementara [6, 7, 8, 9] melewati pintu 3 ((6 + 7 + 8 + 9)% 9 = 3). Semua orang bertemu di kamar kedua.
- [1, 2, 3, 7] melewati pintu 4, sementara [4, 5, 6, 8, 9] melewati pintu 5.
- [1, 2, 3, 4, 8] melewati salah satu dari 9 pintu, [5, 6, 7, 9] melewati yang lain.
┌───┬───┐
│ │ |
│ < 8 9
│ │ |
└───┴───┘
Kali ini, paling banyak 4 orang dapat melarikan diri:
- [1, 3, 5, 8, 9] melewati pintu 8.
- [1, 3, 5, 9] melewati pintu 9.
Daftar selamat lainnya dimungkinkan, seperti [2, 3, 4] atau [1, 4, 6, 7], tetapi tidak ada cara bagi lebih dari 4 orang untuk melarikan diri.
Tantangan
Diberi peta, hasilkan jumlah maksimum pemain yang dapat melarikan diri.
- Jangan khawatir, Anda tidak perlu menguraikan diagram mengerikan saya! Input adalah grafik terarah berlabel, yang dapat Anda wakili dalam format apa pun yang nyaman (edge set, adjacency matrix ...).
- Jika representasi Anda memerlukan label untuk kamar, Anda dapat menggunakan serangkaian nilai yang konsisten. Namun, pintu harus diwakili oleh bilangan bulat 1 hingga 9.
- Input akan selalu memiliki setidaknya satu pintu 9. Semua 9 pintu selalu mengarah ke pintu keluar, sementara pintu lainnya tidak pernah melakukannya.
- Kiriman Anda dapat berupa fungsi atau program lengkap.
- Celah standar dilarang.
Uji kasus
Input ditampilkan sebagai daftar triplet [nomor pintu, dari kamar, ke kamar], dengan 0 sebagai ruang awal dan -1 sebagai pintu keluar. Jika Anda memilih untuk menggunakan format lain, Anda harus mengonversinya dengan tepat.
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