вступление
В большинстве шрифтов всех символов верхнего регистра алфавита , кроме BDOодинарных линий приблизительно трогательных некоторые из четырех углов ограничивающего прямоугольника персонажа: ACEFGHIJKLMNPQRSTUVWXYZ.
Например, две ноги A«касаются» нижнего левого и нижнего правого углов персонажа. Аналогично, Cкасается его верхнего и нижнего правых углов (он немного изогнут, но достаточно близко). Lкасаются только его верхнего левого и нижнего правого углов одинарными линиями. Нижний левый угол L- это вершина, а не конец одной линии.
Вот таблица того, какие символы касаются каких углов в соответствии со шрифтом Stack Exchange, который я (и, надеюсь, вы) видите. 1для верхнего левого угла, 2для верхнего правого, 3нижнего левого, 4нижнего правого.
A: 3 4
C: 2 4
E: 2 4
F: 2 3
G: 2
H: 1 2 3 4
I: 1 2 3 4
J: 1 3
K: 1 2 3 4
L: 1 4
M: 3 4
N: 2 3
P: 3
Q: 4
R: 3 4
S: 2 3
T: 1 2
U: 1 2
V: 1 2
W: 1 2
X: 1 2 3 4
Y: 1 2
Z: 1 4
Настроить
Представьте, что эти линии касания угла проходят в направлении касания угла, так что расположение этих символов на сетке может быть «связано».
Например, все символы в
A
C X
связаны, потому что нижний левый Aи верхний правый от Cподключения, а нижний правый Aи верхний левый от Xподключения.
Тем не мение,
CAX
не имеет соединений, потому что соединения происходят только по диагонали от одного символа к другому .
Вызов
Напишите самую короткую возможную программу (в байтах), которая выводит все символы ACEFGHIJKLMNPQRSTUVWXYZв одном большом полностью связанном дереве в соответствии с приведенными выше правилами. Каждый персонаж должен появиться ровно один раз. Используйте пробелы для пустого пространства.
пример
Все в этом 23-буквенном дереве может быть достигнуто из чего-либо еще через диагональные связи, определенные выше:
Q
A J R
C U S Y
I M N
E H X
F L T
G Z K P
V W
Примечания
- Вы можете жестко закодировать свое решение.
- Ваш вывод должен содержать только
ACEFGHIJKLMNPQRSTUVWXYZпробелы и переводы строк.BDOне будет использоваться. - Начальные / конечные пробелы хороши, если все соединения расположены правильно.
- Выходная сетка не должна быть больше 30 на 30 символов (включая переводы строки и пробелы).
- Рассматриваются только угловые соединения. Дно
Yни к чему не подключается. Вы должны использовать угловые соединения из таблицы выше. - Не все соединяемые углы нужно подключать к чему-либо. Соединяемые и не соединяемые углы могут граничить друг с другом.
- Вывод на стандартный вывод. Там нет ввода.
- Включение графа связности, сделанного с косыми чертами, как это сделал Питер Тейлор , является полезным штрихом, но не обязательным.
Обновление:
githubhagocyte сделал проверку достоверности дерева алфавитов на Github .