양

면접 대비

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

요약
울타리로 나뉜 격자를 플러드필로 영역별로 나누고 각 영역의 양과 늑대 수를 비교해 생존자를 구하되, 마당 밖으로 이어진 영역은 제외합니다.
난이도

보통10점 중 4점

유형
BFS, 그래프, 시뮬레이션
정답자
아직 제출이 없습니다

문제

미키의 뒷마당에는 여러 마리의 양이 있다. 미키가 잠든 사이, 배고픈 늑대들이 마당에 들어와 양을 공격했다.

마당은 행과 열로 이루어진 직사각형이다. .은 빈 칸, #은 울타리, o는 양, v는 늑대를 의미한다.

어떤 두 칸 사이를 울타리를 지나지 않고 상하좌우 이동만으로 오갈 수 있다면, 두 칸은 같은 영역에 속한다. 마당 밖으로 빠져나갈 수 있는 칸은 어떤 영역에도 속하지 않는 것으로 본다. 처음에 모든 양과 늑대는 마당 안의 영역에 있다.

각 영역 안에서는 양이 늑대와 싸운다. 그 영역의 양 수가 늑대 수보다 많으면 양이 이기고, 그 영역의 늑대를 모두 쫓아낸다. 그렇지 않으면 늑대가 그 영역의 양을 모두 먹는다.

아침이 되었을 때 살아남은 양과 늑대의 수를 출력하는 프로그램을 작성하라.

입력

첫째 줄에 두 정수 R과 C가 주어진다 (3 <= R, C <= 250). 이는 마당의 행 수와 열 수를 의미한다.

다음 R개의 줄에는 각각 C개의 문자가 주어진다. 각 문자는 울타리, 양, 늑대, 빈 칸으로 이루어진 마당의 상태를 나타낸다.

출력

아침까지 살아남은 양의 수와 늑대의 수를 이 순서대로 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    6 6
    ...#..
    .##v#.
    #v.#.#
    #.o#.#
    .###.#
    ...###
    
    예상 출력
    0 2
    
  2. 예제 2

    입력
    8 8
    .######.
    #..o...#
    #.####.#
    #.#v.#.#
    #.#.o#o#
    #o.##..#
    #.v..v.#
    .######.
    
    예상 출력
    3 1
    
  3. 예제 3

    입력
    9 12
    .###.#####..
    #.oo#...#v#.
    #..o#.#.#.#.
    #..##o#...#.
    #.#v#o###.#.
    #..#v#....#.
    #...v#v####.
    .####.#vv.o#
    .......####.
    
    예상 출력
    3 5