페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#1939

버그잡기 5초 128MB

문제

프로그래밍 과제를 하던 정올이는 자신이 짜는 프로그램 상에서의 버그를 발견했다. 

버그는 컴퓨터의 메모리 상에서 발생 하였으며,

분석 결과 "square killer"라는 패턴으로 인한 오류 발생이라는 것을 알게 되었다.

메모리는 R행 C열로 배치된 숫자 행렬 이뤄져 있으며, 각 행렬의 숫자는 0과 1의 값을 가진다.

 

"square killer"는 행렬 내의 K x K(K>1) 크기의 부분 정방행렬을 

180도로 돌렸을 때의 모양도 동일한 부분 정방행렬을 뜻한다.

참고로, 정방행렬은 같은 수의 행과 열을 가지는 행렬을 의미한다. 

 

정올이​는 메모리 상에 존재하는 가장 큰 "square killer"의 크기를 알아보는 프로그램을 작성하고자 한다.

"sqaure killer"의 크기는 해당 행렬의 행과 열의 길이를 뜻한다. 

 

아래 1번 예제에서 "sqaure killer"​는 

(1,5)-(2,6), (2,4)-(3,5), (1,1)-(3,3) 이고 이 중 (1,1)-(3,3)이 크기가 3으로 가장 크다.


입력

입력의 첫번째 줄에는 정수 R과 C가 입력된다(1≤R C≤300).

그 다음줄부터 R개의 줄에는 C개의 문자 0과 1이 입력되며 이는 메모리의 상태를 뜻한다.


출력

입력된 메모리 상에서의 가장 큰 "sqaure killer"의 크기를 출력하며 만약 없을 경우 -1을 출력한다.


예제1

입력
36

101010
111001
101001
출력
3

예제2

입력
45

10010
01010
10101
01001
출력
3

예제3

입력
33

101
111
100
출력
-1

출처

COCI 2006/2007 CONTEST #1_6 debug

역링크