만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

목장 건설하기

면접 대비

시간 제한1초메모리 제한512 MB

요약
나무와 돌이 장애물로 놓인 M 곱하기 N 격자에서 장애물을 포함하지 않는 가장 큰 정사각형 부분 격자의 한 변 길이를 구한다.
난이도

보통10점 중 5점

유형
동적 계획법, 행렬, 배열, 누적 합
정답자
아직 제출이 없습니다

문제

랜드 씨는 퇴직금으로 땅을 사서 목장을 지으려 한다. 소개받은 땅은 직사각형이고 대부분 들판이지만, 베기 어려운 나무와 치울 수 없는 바위가 여기저기 섞여 있다.

목장은 정사각형 하나로 짓고, 그 안에는 나무도 바위도 없어야 한다. 랜드 씨는 이 정사각형을 가능한 한 크게 잡으려고 한다.

땅의 세로 길이가 MM미터, 가로 길이가 NN미터일 때 1미터 간격의 격자로 나누어 M×NM \times N 행렬로 나타낸다. 행렬의 원소 0은 들판, 1은 나무, 2는 바위를 뜻한다.

지을 수 있는 가장 큰 정사각형 목장의 한 변 길이 LL을 구하라. 들판 칸이 하나도 없으면 LL은 0이다.

입력

첫째 줄에 MM과 NN이 공백으로 구분되어 주어진다.

다음 MM개 줄에는 각 줄마다 NN개의 정수가 공백으로 구분되어 주어진다. 각 값은 0, 1, 2 중 하나이다.

  • 1≤M≤10001 \le M \le 1000
  • 1≤N≤10001 \le N \le 1000

출력

가장 큰 정사각형 목장의 한 변 길이 LL을 한 줄에 출력한다.

예제8

  1. 예제 1

    입력
    6 6
    0 0 0 1 0 0
    0 0 0 2 1 0
    0 0 2 0 0 0
    0 1 0 0 0 0
    2 0 0 0 0 0
    0 0 0 0 0 0
    
    예상 출력
    3
    
  2. 예제 2

    입력
    1 1
    0
    
    예상 출력
    1
    
  3. 예제 3

    입력
    1 1
    1
    
    예상 출력
    0
    
  4. 예제 4

    입력
    1 1
    2
    
    예상 출력
    0
    
  5. 예제 5

    입력
    3 4
    0 0 0 0
    0 0 0 0
    0 0 0 0
    
    예상 출력
    3
    
  6. 예제 6

    입력
    2 3
    1 2 1
    2 2 1
    
    예상 출력
    0
    
  7. 예제 7

    입력
    1 12
    0 0 0 0 0 1 0 0 0 0 0 0
    
    예상 출력
    1
    
  8. 예제 8

    입력
    4 4
    0 1 0 1
    1 0 1 0
    0 1 0 1
    1 0 1 0
    
    예상 출력
    1