728x90
from pprint import pprint
from collections import deque

R, C, K = map(int, input().split())
rectangles = []

data = [[0]*C for x in range(R)]

def bfs(r, c):
    delta = [(0, 1), (0, -1), (1, 0), (-1, 0)]
    queue = deque([(r,c)])
    global result
    area = 1

    while queue:
        cr, cc = queue.popleft()
        data[cr][cc] = 1

        for dr, dc in delta:
            nr = cr + dr
            nc = cc + dc
            if 0 <= nr < R and 0 <= nc < C and not visited[nr][nc] and not data[nr][nc]:
                area += 1
                queue.append((nr, nc))
                visited[nr][nc] = 1

    result.append(area)

for i in range(K):
    sc, sr, ec, er = map(int, input().split())
    for y in range(sr, er):
        for x in range(sc, ec):
            data[y][x] = 1

visited = [[0]*C for x in range(R)]
result = []

for r in range(R):
    for c in range(C):
        if data[r][c] == 0:
            bfs(r,c)

print(len(result))
print(*sorted(result))

'PS > Python' 카테고리의 다른 글

[BOJ_Python] 12904. A와 B  (0) 2021.03.28
[BOJ_Python] 12967. pqr (미해결)  (0) 2021.03.28
[BOJ_Python] 10026. 적록색약  (0) 2021.03.22
[BOJ_Python] 17298. 오큰수  (0) 2021.03.11
[BOJ_Python] 1707. 이분 그래프  (0) 2021.03.10
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기