Заполнение коня - это заполнение при помощи соединения шахматной фигуры коня. В частности:
1 1
1 1
0
1 1
1 1
(0 - начальная точка, 1 - подключенные ячейки)
Вызов
Учитывая двумерную сетку пространств и стен и начальное местоположение, выполните заполнение рыцаря на сетке. Самый короткий код выигрывает.
правила
Вы можете принимать и выводить данные в любом формате, который вам нравится (изображение, строка, массив, что угодно). Вы можете взять начальное местоположение как часть входной сетки или как отдельную координату. Для целей этого объяснения будет использоваться следующий формат:
######## # = wall ######## x = initial location ## x ## ## ## ######## ## ## ######## ########
Выход - копия входной сетки с добавленным результатом заполнения рыцаря
Ваша заливка не должна быть того же «цвета», что и пространство или стены, но может совпадать с маркером исходного местоположения. Например, учитывая изображение выше, допустимый вывод будет:
######## # = wall ######## @ = fill (could also have been x) ## @ @## ## @ @## ######## ##@ @ ## ######## ########
Вы можете предположить, что входная сетка всегда будет содержать двухэлементную стенку со всех сторон
- Вы можете предположить, что первоначальное местоположение никогда не будет внутри стены
- Вы можете предположить, что сетка никогда не будет больше 1000x1000
- Встроенные в порядке
- Самый короткий код (в байтах) выигрывает
Тестовые случаи
Во всех тестовых случаях #
обозначает стенку, обозначает пустое пространство и
x
обозначает начальное местоположение заливки. @
обозначает заполнение вывода.
Input 1:
########
########
## x ##
## ##
########
## ##
########
########
Output 1:
########
########
## @ @##
## @ @##
########
##@ @ ##
########
########
Input 2:
############
############
## ## x##
## ## ##
##### ##
## ##
############
############
Output 2:
############
############
## ##@@@@@##
##@##@@@@@##
#####@@@@@##
## @@@@@@@##
############
############
Input 3:
####################
####################
## ## ##
## ## ##
## ## ######## ##
## ## ######## ##
## ## ## ## ##
## ## ## ## ##
## ## ## ## ##
## ## ## ## ##
## ## ######## ##
## ## ######## ##
## ## ## ##
## ## x## ##
## ############ ##
## ############ ##
## ##
## ##
####################
####################
Output 3:
####################
####################
##@@##@@@@@@@@@@@@##
##@@##@@@@@@@@@@@@##
##@@##@@########@@##
##@@##@@########@@##
##@@##@@## ##@@##
##@@##@@## ##@@##
##@@##@@## ##@@##
##@@##@@## ##@@##
##@@##@@########@@##
##@@##@@########@@##
##@@##@@@@@@@@##@@##
##@@##@@@@@@@@##@@##
##@@############@@##
##@@############@@##
##@@@@@@@@@@@@@@@@##
##@@@@@@@@@@@@@@@@##
####################
####################
Input 4:
################
################
## ###
## x ###
## ####### ###
## ####### ###
## ## ## ###
## ## ## ###
## ## ## ###
## ######## ##
## ######## ##
## ## ##
## ## ##
################
################
Output 4:
################
################
## @ @ ###
## @ @ @ ###
## ####### ###
##@ ####### @###
## ## ## ###
## @## ##@ ###
## ## ## ###
##@ ########@ ##
## ######## ##
## @ @ ## @##
## @ @## ##
################
################
Input 5:
##############
##############
## ###
## ###
## ###
## ### ###
## #x# ###
## ### ###
## ###
## ###
## ###
##############
##############
Output 5:
##############
##############
##@@@@@@@@@###
##@@@@@@@@@###
##@@@@@@@@@###
##@@@###@@@###
##@@@#@#@@@###
##@@@###@@@###
##@@@@@@@@@###
##@@@@@@@@@###
##@@@@@@@@@###
##############
##############