Chris, pecandu teka-teki silang samar, memiliki satu set algoritma untuk urutan di mana dia memecahkannya.
Kami akan menggunakan gambar di atas sebagai panduan.
- Chris selalu memulai dengan petunjuk pertama, dalam hal ini 1 Across. Chris adalah penggila teka-teki silang yang cakap, sehingga diasumsikan bahwa ia akan selalu tahu jawaban atas petunjuk yang sedang dikerjakannya.
- Setelah Chris menyelesaikan suatu petunjuk, ia akan memeriksa semua petunjuk yang berdampingan dengan yang telah ia selesaikan (dalam kasus pertama, 1 Down, 2 Down, dan 3 Down) dan kemudian melengkapi petunjuk itu dengan angka terendah. Jika tidak ada petunjuk yang bersebelahan, ia akan pergi ke langkah 3.
- Jika petunjuknya sedemikian sehingga nomor berikutnya (seperti yang dijelaskan dalam Langkah 3) memiliki petunjuk lintas dan petunjuk turun, ia akan menyelesaikan petunjuk pertama (100% kepastian, ini berbatasan dengan OCD!)
- Jika tidak ada petunjuk yang berdampingan, ia akan pergi ke petunjuk yang tersedia berikutnya yang nomor berikutnya (melintasi atau ke bawah)
- Ulangi dari Langkah 2 sampai semua petunjuk selesai.
Dan ini adalah saatnya untuk Anda, coders sayang. Anda telah ditugaskan untuk membuat kode yang dapat, dengan disediakan template teka-teki silang, memberikan output yang menggambarkan urutan petunjuk berdasarkan algoritma Chris untuk menyelesaikannya.
Kode akan menerima input dari template teka-teki silang, dalam bentuk .
mewakili kotak putih dan #
mewakili kotak hitam.
Contoh :
.....#.........
.#.#.#.#.#.#.#.
...#...#.......
.#.#.#.#.#.#.#.
....#..........
##.#.#.#.#.#.#.
......#........
.###.#####.###.
........#......
.#.#.#.#.#.#.##
..........#....
.#.#.#.#.#.#.#.
.......#...#...
.#.#.#.#.#.#.#.
.........#.....
Input dapat melalui: a) file yang membaca representasi dari teka-teki silang, atau b) dengan input baris dari setiap baris teka-teki silang, diikuti oleh \n
, dengan \n
EOF kedua yang mengindikasikan.
Dan kemudian akan menentukan metode dimana Chris akan menyelesaikannya sesuai dengan algoritma di atas yang telah dia jelaskan.
Output harus dalam format serangkaian instruksi yang dipisahkan koma dalam bentuk n(A|D)
, di mana n
nomor petunjuk diikuti oleh A
untuk seluruh atau D
untuk ke bawah.
Jadi pada contoh di atas (baik dari gambar, dan contoh template, yang merupakan satu dan sama), hasilnya adalah:
1A,1D,2D,3D,9A,10A,4D,5D,6D,7D,8D,11A,12A,13A,15A,14D,15D,16A,17A,18D,19D,20A,21D,23A,22D,24A,25D,27A,28A,26D,29A,30A,31A
Kode terpendek menang ...
Pengujian
Anda harus memberikan kode, jumlah byte, dan salah satu dari empat kasus uji yang diwakili dalam .
dan #
format, serta output yang dihasilkan dari input ini. Ada empat kasus uji, tiga di bawah ini serta contoh template di atas.
Contoh uji kasus:
Test Case 1
.....#
.#.#.#
...#..
.#.#.#
.....#
##.#..
Keluaran: 1A,1D,2D,3D,4A,5A,6A,7A
Test Case 2
.....#..
.#.##..#
.#....#.
...##.#.
.####...
......##
Keluaran: 1A,1D,2D,5A,4D,4A,3D,3A,7A,8A,6D,9A
Test Case 3
.........#
#.#.#.#.#.
....#...#.
#...#.#.#.
..###.#.#.
.#....#...
.#####...#
.....###..
Keluaran: 1A,2D,3D,4D,5D,7A,8A,9A,10A,11A,11D,12A,13A,6D,14D,15A,16A,17A
Test Case 4
.....#.........
.#.#.#.#.#.#.#.
...#...#.......
.#.#.#.#.#.#.#.
....#..........
##.#.#.#.#.#.#.
......#........
.###.#####.###.
........#......
.#.#.#.#.#.#.##
..........#....
.#.#.#.#.#.#.#.
.......#...#...
.#.#.#.#.#.#.#.
.........#.....
Keluaran: 1A,1D,2D,3D,9A,10A,4D,4A,5D,6D,7D,8D,11A,12A,13A,15A,14D,15D,16A,17A,18D,19D,20A,21D,23A,22D,24A,25D,27A,28A,26D,29A,30A,31A
Semoga berhasil!
17A
di akhir. Juga yang keempat 4A
tepat setelahnya 4D
.