Berliku kisi-kisi adalah jalur tertutup yang mengunjungi setiap sel dari kisi kisi sekurang-kurangnya satu kali, tidak pernah melintasi tepi antara sel yang berdekatan lebih dari satu kali dan tidak pernah melintasi dirinya sendiri. Sebagai contoh:
Setelah diisi, setiap sel dari grid dapat diwakili oleh salah satu dari 8 ubin berikut:
Dengan penomoran seperti ini, ubin-ubin berliku di atas dapat diwakili oleh matriks ini:
5 6 5 6
4 8 3 2
5 7 6 2
4 3 4 3
Tugas Anda adalah untuk menyelesaikan jalan yang berliku-liku pada grid yang diberikan set ubin yang tidak lengkap. Misalnya, berliku-liku yang tidak lengkap:
... yang dapat direpresentasikan menggunakan 0
s untuk ubin yang hilang:
5 0 0 0 6
0 0 7 0 0
0 0 0 0 3
2 4 0 0 0
0 0 3 0 0
... dapat diselesaikan seperti ini:
...yaitu:
5 6 5 1 6
4 8 7 6 2
5 7 7 7 3
2 4 8 8 6
4 1 3 4 3
Spesifikasi
- Input akan selalu memiliki paling tidak dan paling banyak ubin (tidak kosong), di mana .
- Anda dapat menggunakan set nilai apa pun untuk mewakili ubin, selama itu ditentukan dalam jawaban Anda.
- Input dan output Anda mungkin dalam format dan urutan apa pun, selama itu ditentukan dalam jawaban Anda.
- Setidaknya satu solusi yang valid akan ada untuk semua input (yaitu Anda tidak perlu menangani input yang tidak valid).
- Aturan I / O standar berlaku.
- Celah standar dilarang.
- Penjelasan, bahkan untuk bahasa "praktis", dianjurkan.
Uji kasus
Input ( Θ ):
0 6 0 0
Output ( Θ ):
5 6 4 3
Input ( Θ ):
5 6 5 6 4 0 3 2 5 7 6 2 4 3 4 3
Output ( Θ ):
5 6 5 6 4 8 3 2 5 7 6 2 4 3 4 3
Input ( Θ ):
5 0 0 0 6 0 0 7 0 0 0 0 0 0 3 2 4 0 0 0 0 0 3 0 0
Output ( Θ ):
5 6 5 1 6 4 8 7 6 2 5 7 7 7 3 2 4 8 8 6 4 1 3 4 3
sumber
Jawaban:
JavaScript (ES7),
236 ... 193185 byteOutput dengan memodifikasi matriks input.
Cobalah online!
(termasuk beberapa kode pasca pemrosesan untuk mencetak hasilnya baik sebagai matriks dan sebagai daftar datar yang kompatibel dengan alat visualisasi yang disediakan oleh OP)
Hasil
Bagaimana?
Variabel
Pemeriksaan awal
Untuk sekarang, mari kita asumsikan bahwa kita tidak kembali ke titik awal.
Mencari jalan
8 entri terakhir tidak valid dan dihilangkan. 4 entri yang tidak valid lainnya secara eksplisit ditandai dengan tanda hubung.
Untuk referensi, di bawah ini adalah tabel yang diterjemahkan, kompas dan ubin-set yang disediakan dalam tantangan:
Memvalidasi jalur
Karena itu kode JS:
Sumber yang diformat
sumber