El escenario
Conduzco por un camino con mi auto y comienza a llover. Las gotas de lluvia caen al azar en mi ventana y ahora me pregunto, ¿dónde está la mayor área húmeda conectada?
La tarea
Para hacerlo más fácil, la ventana se divide en una matriz de 10 * 10 cuadrados. Su trabajo es encontrar la mayor área de caída de agua conectada en la ventana.
Entrada
Hay dos entradas posibles, puede usar una matriz bidimensional o una unidimensional. Puede elegir entre entradas como stdin, etc.
Ejemplo:
// 2-dimensional:
[[0,1,0,0,0,0,1,0,0,0],
[0,1,1,0,0,0,0,1,1,0],
[0,1,1,0,0,0,0,1,0,0],
[0,1,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,1,0],
[0,0,0,1,1,0,0,0,1,0],
[0,0,0,1,1,0,0,0,1,0],
[0,0,0,0,0,1,1,0,1,0],
[0,0,0,0,0,1,1,0,1,0],
[0,0,0,0,0,0,0,0,0,0]]
// 1-dimensional
[0,1,0,0,0,0,1,0,0,0,
0,1,1,0,0,0,0,1,1,0,
0,1,1,0,0,0,0,1,0,0,
0,1,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,1,0,
0,0,0,1,1,0,0,0,1,0,
0,0,0,1,1,0,0,0,1,0,
0,0,0,0,0,1,1,0,1,0,
0,0,0,0,0,1,1,0,1,0,
0,0,0,0,0,0,0,0,0,0]
Salida
Su código debe incluir el tamaño del área conectada más grande y las coordenadas x e y de las gotas de agua que pertenecen a esta área en el formato
"Tamaño: Coordenadas Z: (X1, Y1) (X2, Y2) .. ".
Ejemplo para la entrada anterior:
Size: 6 Coordinates: (1,0) (1,1) (2,1) (1,2) (2,2) (1,3)
El orden de las coordenadas no importa.
Reglas
- Las gotas de agua están conectadas, si se tocan entre sí ortogonalmente
- Las conexiones diagonales no cuentan
- Puede haber muchas áreas y su código tiene que encontrar la más grande
- Un campo vacío se representa como "0" y un campo húmedo como "1"
- Publique su solución con una breve explicación y la salida de la entrada anterior
- El código más corto dentro de los próximos 7 días ganará
- Si hay dos áreas con el mismo tamaño, puede elegir una