Ksatria mengisi adalah mengisi banjir menggunakan konektivitas bagian catur ksatria. Secara khusus:
1 1
1 1
0
1 1
1 1
(0 adalah titik awal, 1s menunjukkan sel yang terhubung)
Tantangan
Diberi kisi 2D ruang dan dinding, dan lokasi awal, melakukan knight-fill pada kisi. Kode terpendek menang.
Aturan
Anda dapat mengambil input dan menghasilkan output dalam format apa pun yang Anda suka (gambar, string, array, apa pun). Anda dapat mengambil lokasi awal sebagai bagian dari kisi masukan atau sebagai koordinat terpisah. Untuk tujuan penjelasan ini, format berikut akan digunakan:
######## # = wall ######## x = initial location ## x ## ## ## ######## ## ## ######## ########
Output adalah salinan dari grid input dengan hasil knight-fill ditambahkan
Isi Anda tidak boleh dalam "warna" yang sama dengan ruang atau dinding, tetapi bisa sama dengan penanda lokasi awal. Misalnya diberikan gambar di atas, output yang valid adalah:
######## # = wall ######## @ = fill (could also have been x) ## @ @## ## @ @## ######## ##@ @ ## ######## ########
Anda dapat mengasumsikan bahwa kisi input akan selalu berisi dinding 2 sel di semua sisi
- Anda mungkin berasumsi bahwa lokasi awal tidak akan pernah ada di dalam tembok
- Anda dapat berasumsi bahwa kisi tidak akan pernah lebih besar dari 1000x1000
- Builtin baik-baik saja
- Kode terpendek (dalam byte) menang
Uji Kasus
Dalam semua kasus uji, #
menunjukkan dinding, menunjukkan ruang kosong, dan
x
menunjukkan lokasi awal pengisian. @
menunjukkan isi keluaran.
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:
##############
##############
##@@@@@@@@@###
##@@@@@@@@@###
##@@@@@@@@@###
##@@@###@@@###
##@@@#@#@@@###
##@@@###@@@###
##@@@@@@@@@###
##@@@@@@@@@###
##@@@@@@@@@###
##############
##############