만드는 중입니다

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

크리스털의 파괴

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

요약
격자판에 크리스탈과 폭탄이 주어질 때, 첫 폭탄부터 연쇄 폭발시켜 파괴되는 크리스탈의 최대 개수를 구합니다.
난이도

보통10점 중 6점

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

문제

옛날 옛적에 Zenyk는 친구들을 위해 새로운 마법 게임을 생각해 냈다. 그는 n×mn \times m 크기의 보드를 가져와 그 위에 크리스털 kk개를 놓았다. 그다음 보드 위에 폭탄 bb개도 놓았다.

폭탄이 터지면 각 폭탄은 자신이 있는 행 또는 열에 있는 모든 크리스털을 파괴한다. 또한 선택한 방향에 있는 모든 폭탄도 함께 터뜨린다. 각 폭탄의 폭발 방향(행 또는 열)은 친구들이 정한다. 폭탄마다 방향이 다를 수 있다.

게임의 목표는 처음 터뜨릴 폭탄과 폭발 방향을 골라, 파괴되는 크리스털의 수가 최대가 되도록 하는 것이다.

입력

첫 줄에는 정수 네 개 nn, mm, kk, bb가 주어진다 (1≤n,m≤30001 \le n, m \le 3000, 0≤k+b≤n×m0 \le k + b \le n \times m). nn과 mm은 보드의 행 수와 열 수, kk는 크리스털의 수, bb는 폭탄의 수이다.

다음 nn줄에는 보드가 한 줄에 mm개의 문자로 주어진다:

  • "."은 빈 칸,
  • "k"는 크리스털,
  • "b"는 폭탄이다.

출력

파괴되는 크리스털 수의 최댓값을 정수 하나로 출력한다.

예제2

  1. 예제 1

    입력
    7 3 4 5
    bbb
    ..b
    ..b
    k..
    k..
    k..
    k..
    
    예상 출력
    4
    
  2. 예제 2

    입력
    3 3 4 2
    k..
    kk.
    bbk
    
    예상 출력
    3