목차

행렬 찾기

ps
링크acmicpc.net/…
출처BOJ
문제 번호1687
문제명행렬 찾기
레벨골드 3
분류

부분그리드

시간복잡도O(nm)
인풋사이즈n<=333, m<=333
사용한 언어Python 3.13
제출기록32412KB / 72ms
최고기록68ms
해결날짜2025/02/13

풀이

코드

"""Solution code for "BOJ 1687. 행렬 찾기".

- Problem link: https://www.acmicpc.net/problem/1687
- Solution link: http://www.teferi.net/ps/problems/boj/1687

Tags: [nge]
"""

from teflib import seqtask


def main():
    N, M = [int(x) for x in input().split()]
    grid = [input() for _ in range(N)]

    answer = 0
    heights = [0] * M
    for row in grid:
        for i, x in enumerate(row):
            heights[i] = heights[i] + 1 if x == '0' else 0
        begs, ends = seqtask.max_ranges_for_each_min(heights)
        max_area = max(h * (e - b) for h, b, e in zip(heights, begs, ends))
        answer = max(max_area, answer)

    print(answer)


if __name__ == '__main__':
    main()