Wypełnienie rycerza to wypełnienie powodziowe przy użyciu połączenia szachy rycerza. Konkretnie:
1 1
1 1
0
1 1
1 1
(0 to punkt początkowy, 1s pokazuje połączone komórki)
Wyzwanie
Biorąc pod uwagę siatkę 2D przestrzeni i ścian oraz początkową lokalizację, wypełnij siatkę rycerzem. Najkrótszy kod wygrywa.
Zasady
Możesz pobierać dane wejściowe i generować dane wyjściowe w dowolnym formacie (obraz, ciąg, tablica, cokolwiek). Możesz wziąć początkową lokalizację jako część siatki wejściowej lub jako osobną współrzędną. Do celów tego objaśnienia zostanie użyty następujący format:
######## # = wall ######## x = initial location ## x ## ## ## ######## ## ## ######## ########
Wyjście jest kopią siatki wejściowej z dodanym wynikiem wypełnienia rycerza
Wypełnienie nie może być w tym samym „kolorze” co przestrzeń lub ściany, ale może być takie samo jak początkowy znacznik lokalizacji. Na przykład biorąc pod uwagę powyższy obraz, poprawnym wyjściem byłoby:
######## # = wall ######## @ = fill (could also have been x) ## @ @## ## @ @## ######## ##@ @ ## ######## ########
Możesz założyć, że siatka wejściowa zawsze będzie zawierać ścianę 2-komórkową ze wszystkich stron
- Możesz założyć, że początkowa lokalizacja nigdy nie będzie w ścianie
- Możesz założyć, że siatka nigdy nie będzie większa niż 1000 x 1000
- Wbudowane są w porządku
- Najkrótszy kod (w bajtach) wygrywa
Przypadki testowe
We wszystkich przypadkach testowych #
oznacza ścianę, oznacza pustą przestrzeń i
x
wskazuje początkową lokalizację wypełnienia. @
oznacza wypełnienie wyjściowe.
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:
##############
##############
##@@@@@@@@@###
##@@@@@@@@@###
##@@@@@@@@@###
##@@@###@@@###
##@@@#@#@@@###
##@@@###@@@###
##@@@@@@@@@###
##@@@@@@@@@###
##@@@@@@@@@###
##############
##############