만드는 중입니다

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

저체온증

시간 제한2초메모리 제한1024 MB

요약
N×M 격자에서 매일 밤 최대 K명이 저체온에 걸릴 때, 영원히 정상 체온을 유지하는 사람의 수를 구합니다.
난이도

보통10점 중 7점

유형
그래프, BFS, 행렬
정답자
아직 제출이 없습니다

문제

사람들이 NN행 MM열의 직사각형 모양으로 모여 있다. 처음에 각 사람은 정상 체온이거나 저체온증 상태이며, 낮과 밤이 지나면서 상태가 바뀐다. 낮은 따뜻하기 때문에 저체온증인 사람이 정상 체온을 회복할 기회이다. 어떤 사람과 사방으로 인접한 사람 중 두 명 이상이 정상 체온이면, 그 사람은 체온을 나눠 받아 저체온증에서 정상 체온으로 회복된다. 회복된 사람은 같은 방법으로 인접한 다른 사람들이 정상 체온을 회복하도록 도울 수 있으며, 이 회복 과정은 낮 동안 충분히 많이 반복될 수 있다. 밤은 춥기 때문에 정상 체온인 사람이 저체온증에 걸릴 수 있다. 단, 밤 사이에 새로 저체온증에 걸리는 사람은 KK명 이하이다. 낮과 밤이 계속 반복되며 사람들이 저체온증에 걸리거나 정상 체온으로 회복된다고 하자. 어떤 사람은 저체온증에서 정상 체온으로 영영 회복하지 못할 수 있다. 반면 주변에 정상 체온인 사람이 충분히 많아서, 밤마다 어떤 KK명이 저체온증에 걸리더라도 낮이 되면 정상 체온으로 회복할 수 있는 사람도 있다. 첫날 낮의 사람들 상태가 주어질 때, 낮과 밤이 충분히 많이 반복된 뒤 최악의 경우에도 낮에 정상 체온을 유지하는 사람의 수를 구하라.

입력

첫 번째 줄에 행의 개수 NN, 열의 개수 MM, 밤에 새로 저체온증에 걸릴 수 있는 사람 수의 최댓값 KK가 공백으로 구분되어 주어진다. (1≤N,M≤2 0001\leq N,M\leq 2\,000; 1≤K≤N×M1\leq K\leq N\times M)

두 번째 줄부터 NN개의 줄에 각각 길이가 MM인 문자열이 주어진다. ii번째 줄의 jj번째 문자는 ii행 jj열에 있는 사람의 초기 상태를 나타낸다. O는 정상 체온, .는 저체온증이다. 모든 문자는 O 또는 .임이 보장된다.

출력

낮과 밤이 계속 반복되더라도 낮에 정상 체온을 유지할 수 있는 사람의 수를 출력한다.

예제2

  1. 예제 1

    입력
    5 7 1
    O......
    ..O....
    .O.....
    .O...O.
    ....O.O
    
    예상 출력
    35
    
  2. 예제 2

    입력
    5 7 2
    O.....O
    ..O....
    .O....O
    .O...O.
    ......O
    
    예상 출력
    12