Debug P25624


Statement
 

pdf   zip

thehtml

Al debugar un programa Mirko se ha dado cuenta de un bug que está relacionado con los llamados “cuadrados asesinos” en la memoria del programa. La memoria del programa es una matriz compuesta de R filas y C columnas de valores 0 y 1. Un cuadrado asesino es una submatriz dentro de la memoria, de más de un caracter que, al rotarla 180 grados, es idéntica a ella misma. Por ejemplo, la siguiente matriz contiene 3 cuadrados asesinos:

101010
111001
101001

Memoria
....10
....01
......

Cuadrado
asesino
......
...00.
...00.

Cuadrado
asesino
101...
111...
101...

Cuadrado
asesino

Mirko se pregunta si hay una conexión entre el tamaño del cuadrado asesino más grande y el bug en su programa. Ayúdale escribiendo un programa que, dada una distribución de bits en la memoria, encuentre el tamaño del cuadrado asesino más grande. Por ejemplo, el cuadrado asesino más grande del ejemplo anterior tenía tamaño 3.

Entrada

Una línea con dos enteros R y C, menores o iguales a 300. Las siguientes R líneas contienen cada una C caracteres ’0’ o ’1’, sin espacios.

Salida

Escribe el tamaño del mayor cuadrado asesino en una única línea, o escribe −1 si no hay ningún cuadrado asesino.

Public test cases
  • Input

    1 1
    0
    

    Output

    -1
    
  • Input

    8 4
    0101
    1010
    1000
    0000
    0011
    0010
    1000
    1011
    

    Output

    3
    
  • Input

    2 5
    01011
    01100
    

    Output

    2
    
  • Information
    Author
    COCI06/07
    Language
    Spanish
    Official solutions
    C++
    User solutions
    C++