Descrizione della sfida
Chiamiamo un array rettangolare bidimensionale (il che significa che ogni subarray ha la stessa lunghezza), una griglia . Ogni unità di una griglia è uno spazio vuoto o un bordo . In una griglia di caratteri, lo spazio vuoto è rappresentato da un singolo spazio bianco; qualsiasi altro personaggio viene trattato come un bordo. Griglie di esempio ( +
", |
" e -
"aggiunte" per la leggibilità - non fanno parte della griglia ):
+----+
| |
| |
| |
| |
| |
+----+ an empty 4x5 grid
+------+
| |
| # |
| # |
+------+ a 6x3 grid with 2 borders
+----------+
| |
| |
| ##### |
| # # |
| ## # <------ enclosed area
| # # |
| ###### |
| |
+----------+ a 10x8 grid with an enclosed area
Data una griglia 2D e una coppia di coordinate, riempire l'area chiusa che circonda il punto rappresentato dalle coordinate.
Ingressi / uscite di esempio
1)
0 0
+----------+ +----------+
| | |XXXXXXXXXX|
| | -> |XXXXXXXXXX|
| | |XXXXXXXXXX|
+----------+ +----------+
2)
6 5
+-----------------+ +-----------------+
| | | |
| | | |
| ######## | | ######## |
| # # | | #XXXXXXX# |
| # #### | | #XXXX#### |
| # # | | #XXXX# |
| # # | -> | #XXXX# |
| # # | | #XXXX# |
| #### | | #### |
| | | |
| | | |
+-----------------+ +-----------------+
3)
4 6
+-----------------+ +-----------------+
| | |XXXXXXXXXXXXXXXXX|
| #### | |XXXX####XXXXXXXXX|
| # # | -> |XXX# #XXXXXXXX|
| #### | |XXXX####XXXXXXXXX|
| | |XXXXXXXXXXXXXXXXX|
+-----------------+ +-----------------+
4)
4 5
+-----------------+ +-----------------+ +-----------------+
| | | | | |
| | | | | |
| #### | | #### | | XXXX |
| #### | -> | #### | or | XXXX |
| #### | | #### | | XXXX |
| | | | | |
+-----------------+ +-----------------+ +-----------------+
5)
2 6
+----------------+ +----------------+
| | |XXXXXXXXXXXXXXXX|
| | |XXXXXXXXXXXXXXXX|
| | |XXXXXXXXXXXXXXXX|
| | -> |XXXXXXXXXXXXXXXX|
| | |XXXXXXXXXXXXXXXX|
|BBBBBBBBBBBBBBBB| |BBBBBBBBBBBBBBBB|
| | | |
| | | |
+----------------+ +----------------+
Appunti
Una griglia vuota è considerata chiusa, vale a dire che i bordi si trovano implicitamente anche lungo i bordi della griglia (vedere gli esempi 1. e 5.),
Un angolo di un'area chiusa non deve essere a forma di L. Le seguenti due aree sono pertanto equivalenti:
#### ##
# # # #
# # == # #
# # # #
#### ##
Se un'unità sotto le coordinate sembra essere un bordo, puoi lasciare la griglia invariata (come nell'esempio 4.) o trattarla come uno spazio vuoto,
Puoi scegliere qualsiasi carattere per riempimento / spazio vuoto purché includi queste informazioni nella presentazione,
Se usi un tipo diverso da quello
char
adatto ai tuoi scopi, puoi usareints
(0
per spazio vuoto,1
per bordo) obooleans
(true
efalse
rispettivamente) o qualsiasi altro tipo - assicurati di includere queste informazioni nel tuo invio,Le coordinate utilizzate negli esempi precedenti sono
(row, column)
coordinate con indice 0 , poiché è più conveniente per un array bidimensionale. Se si desidera utilizzare il(column, row)
sistema (cartesiano) e / o coordinate non indicizzate 0, specificarlo nella richiesta.Se non sai da dove cominciare, consulta l' articolo di Wikipedia sul riempimento di inondazioni
Ricorda che si tratta di una sfida con il golf del codice , quindi rendi il tuo codice il più breve possibile!