Berikut adalah diagram penjara yang menggunakan karakter ASCII:
+------------------------------+
| |
| X X |
| |
| D
D |
| |
| |
| X X X |
| |
+------------------------------+
Dinding terbuat dari karakter pipa |
, tanda hubung -
, dan pilar +
untuk sudut dan persimpangan. Ada juga dua pintu yang ditandai D
(yang akan selalu ada di dinding kiri dan kanan). Penjara dipenuhi dengan orang-orang menakutkan yang ditandai X
.
Tujuannya adalah untuk membangun tembok untuk memenuhi hal-hal berikut:
- Setiap orang berada di sel isolasi;
- Ada koridor yang membentang di antara dua pintu;
- Setiap sel berisi tepat satu pintu, yang terhubung langsung ke koridor utama;
- Semua ruang di penjara digunakan oleh sel dan koridor;
- Setiap sel berisi seseorang (yaitu, tidak ada sel kosong).
Koridor adalah jalur tunggal, tidak bercabang, dan selalu lebar satu karakter. Inilah solusi untuk penjara di atas:
+---------+--------------------+
| | |
| X | X |
| | +--------+
+------D--+-----D-----+ D
D +---D--+
+----D--------+---D-----+ |
| | | |
| X | X |X |
| | | |
+-------------+---------+------+
Anda dapat mengasumsikan bahwa setiap penjara input akan selalu memiliki output yang valid. Berikut adalah beberapa penjara input, bersama dengan kemungkinan keluaran:
+------------------------------+
|X X X X X X X X X X X X X X X |
| |
D D
| |
| X |
+------------------------------+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+
|X|X|X|X|X|X|X|X|X|X|X|X|X|X|X |
+D+D+D+D+D+D+D+D+D+D+D+D+D+D+D-+
D D
+----------------------D-------+
| X |
+------------------------------+
+-----------+
|X |
| |
| |
|X X|
| |
| X|
| |
D D
+-----------+
+-+-------+-+
|X| D |
| D +---+ | |
+-+ | | |
|X| | +---+X|
| | | | +-+
| D | | X|
+-+ | +-D---+
D | D
+---+-------+
+----------------+
|X X X X|
| |
D |
| |
|X X X |
| |
| |
| |
| X X D
| |
| |
+----------------+
+---+---+----+---+
|X | X | X | X|
+--D+--D+---D+--D+
D |
+---+---+------+ |
|X | X | X | |
+--D+--D+---D--+ |
| |
| +-----+------+-+
| | X | X | D
| +----D+---D--+ |
| |
+----------------+