ОБНОВЛЕННАЯ ОЦЕНКА : Поскольку эта задача сложнее, чем я ожидал, я скорректировал оценку. Программа, которая может решить один зеркальный ввод, является правильным ответом. Более сложные программы получают бонус к своему счету.
На PPCG было несколько загадок, чтобы найти лазерный путь в коробке с зеркалами. В этой головоломке вам нужно создать коробку зеркал, чтобы соответствовать целому ряду лазерных направлений.
Вам предоставляется окно и спецификации, где лазеры должны входить и выходить. Ваша программа должна разместить ровно N двухсторонних зеркал в коробке, чтобы соответствовать спецификации. Зеркала должны быть наклонены под углом 45 градусов, но могут быть наклонными вперед или назад.
вход
Ваша программа должна принять блочную сетку через STDIN, аргумент командной строки или файл в следующих примерах формата:
+--G--+ +abcde+
G | f/////d
| /| a// c
+-----+ f |
+-b-e-+
Буквенные пары (можно использовать [a-zA-Z]) указывают на вход / выход до 52 лазеров. Внутри коробки будет N /
зеркал. Размеры поля будут 3 <= W, H <= 200. Поле состоит из +|-
символов. В коробке может быть любое количество зеркал, включая ноль.
Выход
Вывод должен соответствовать вводу, за исключением того, что /
символы могут быть перемещены и / или изменены на \
символы. Ваша программа должна отправлять правильную строку зеркального окна в STDOUT или в файл, после новой строки необязательно. Если никакое размещение зеркал не может соответствовать входной спецификации, выведите Impossible\n
. Примеры возможных решений:
+--G--+ +abcde+
G / | f \ \ d
| | a/ \ c
+-----+ f / //|
+-b-e-+
Пример тестирования
Входные данные:
+abcdefghijklmnopqrstuvwxyA-+
|/////////////// |
|/////////////// |
| |
+-Abcdefghijklmnopqrstuvwxya+
Пример вывода:
+abcdefghijklmnopqrstuvwxyA-+
|\ \|
|/ / |
|\\\\\\\\\\\\\\\\\\\\\\\\\\ |
+-Abcdefghijklmnopqrstuvwxya+
Подсчет очков (ОБНОВЛЕНО)
Это код-гольф с бонусами. Вы должны указать своим ответом, сколько зеркал может решить ваша программа (N). Ваша оценка - это длина вашей программы в байтах, деленная на N. Это позволяет людям войти с простой программой, но вознаграждает больше амбициозных программистов бонусом.
Стандартные лазейки запрещены.
* 2^30
компонент там