Entrada:
Una matriz 2D que contiene dos valores distintos (opcionales). Usaré 0 y 1 cuando explique las reglas. El formato de entrada es, por supuesto, flexible.
Desafío:
Los ceros son agua y los unos son islas. Para garantizar la soledad, su tarea es rodear todas las islas con agua insertando filas y columnas de ceros. No desea desperdiciar agua, por lo que debe minimizar la cantidad de agua agregada. En caso de que haya más de una solución que requiera la misma cantidad de agua agregada, entonces debe agregar columnas de agua, no filas. Mostraré esto en los casos de prueba.
Salida:
La nueva matriz 2D modificada. El formato de salida es, por supuesto, flexible.
Casos de prueba:
La entrada y la salida están separadas por guiones. Los ceros agregados se muestran en negrita. Utilice una de las respuestas aquí si desea convertir los casos de prueba a formatos más convenientes.
1
---
1
1 1
---
1 0 1
1 1
1 1
---
1 0 1
0 0 0
1 0 1
1 0
0 1
---
1 0 0
0 0 1
Tenga en cuenta que agregamos una columna de ceros, no una fila de ceros. Esto se debe a que el número de ceros necesarios es igual y se deben preferir las columnas.
1 0 0 0 1
0 1 0 1 0
0 0 1 0 0
0 1 0 1 0
---
1 0 0 0 1
0 0 0 0 0
0 1 0 1 0
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
0 1 0 1 0
Tenga en cuenta que agregamos filas, no columnas, ya que eso requiere la menor cantidad de ceros adicionales.
0 0 1 0 0
0 1 1 1 0
---
0 0 0 1 0 0 0
0 0 0 0 0 0 0
0 1 0 1 0 1 0
Esto requería tanto columnas como una fila.
0 0 1 0 0
0 1 0 1 0
---
0 0 0 1 0 0 0
0 1 0 0 0 1 0
Es mejor agregar dos columnas que una fila, ya que requiere menos agua.
0 0
1 0
0 1
1 0
0 0
---
0 0
1 0
0 0
0 1
0 0
1 0
0 0
Es mejor agregar dos filas que una columna, ya que requiere menos agua.