Ecco un diagramma di una prigione che utilizza caratteri ASCII:
+------------------------------+
| |
| X X |
| |
| D
D |
| |
| |
| X X X |
| |
+------------------------------+
Le pareti sono fatte di personaggi di tubi |
, trattini -
e pilastri +
per angoli e incroci. Ci sono anche due porte contrassegnate con D
(che saranno sempre sulle pareti sinistra e destra). La prigione è piena di persone spaventose contrassegnate da X
.
L'obiettivo è quello di costruire muri per soddisfare quanto segue:
- Ogni persona è in isolamento;
- C'è un corridoio che corre tra le due porte;
- Ogni cella contiene esattamente una porta, che è direttamente collegata al corridoio principale;
- Tutto lo spazio nella prigione viene utilizzato dalle celle e dal corridoio;
- Ogni cella contiene una persona (ovvero non ci sono celle vuote).
Il corridoio è un singolo percorso, non si dirama, ed è sempre largo un personaggio. Ecco una soluzione per la prigione sopra:
+---------+--------------------+
| | |
| X | X |
| | +--------+
+------D--+-----D-----+ D
D +---D--+
+----D--------+---D-----+ |
| | | |
| X | X |X |
| | | |
+-------------+---------+------+
Puoi presumere che qualsiasi prigione di input avrà sempre un output valido. Ecco alcune altre prigioni di input, insieme a possibili output:
+------------------------------+
|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--+ |
| |
+----------------+