두 집합 A와 B의 윤곽선이 그려진 격자에서 A에만, B에만, 교집합에 속하는 내부의 빈 칸 수를 각각 센다.
보통6그래프BFS시뮬레이션구현아직 제출이 없습니다시간 제한2초메모리 제한512 MB논리학자 존 벤은 서로 다른 집합에 속한 원소를 분류하는 방법으로 벤 다이어그램을 고안했다. 집합 A와 B가 주어지면 원을 두 개 겹쳐 그린다. 하나는 A의 원소를, 다른 하나는 B의 원소를 나타낸다. 두 원이 겹치는 영역은 A와 B에 모두 속하는 원소, 즉 교집합 A∩B를 나타낸다. 전형적인 벤 다이어그램은 다음과 같다.

그림 H.1
존의 손자 빈 본 벤은 할아버지의 다이어그램에서 영감을 얻었지만 매우 창의적인 사람이었다. 원 두 개를 겹치는 방식만으로 복잡하게 얽힌 교집합을 나타내기에는 너무 심심하다고 여겨, 할아버지의 다이어그램을 더 흥미롭게 바꾸기로 했다. 빈 다이어그램도 벤 다이어그램과 마찬가지로 두 집합 A와 B의 원소를 분류하는 데 쓰지만, 각 집합을 나타내는 도형이 원일 필요는 없다. 교집합에 해당하는 겹침 부분이 한 곳만 있다면 도형은 어떤 모양이어도 된다.
이 문제에서 빈 다이어그램은 격자 위에 놓인다. 각 집합은 X 문자로 이루어진 고리 하나로 나타내고, 그 고리의 X 중 하나를 A나 B로 바꿔 어느 집합인지 표시한다. 고리 안쪽이든 바깥쪽이든 비어 있는 칸은 모두 마침표 .다. 한 고리의 내부에 해당하는 칸은 모두 이어져 있다. 교차점이 아닌 고리 문자는 상하좌우로 정확히 두 개의 고리 문자와 맞닿는다. 고리는 자기 자신과 교차하지 않고, 곧게 이어지는 부분과 직각으로 꺾이는 부분을 빼면 같은 고리의 서로 다른 부분끼리 맞닿지 않는다. 그림 H.2와 그림 H.3을 참고한다.
| 그림 H.2: 올바른 고리 두 개 | 그림 H.3: 잘못된 고리 두 개 |
|---|---|
![]() | ![]() |
고리 A와 고리 B는 정확히 두 점에서 만난다. 교차점은 두 고리가 함께 쓰는 칸이며, 상하좌우로 고리 문자 네 개와 맞닿고 대각선으로 인접한 네 칸은 모두 .다. 어느 고리도 교차점에서 직각으로 꺾지 않고 가로나 세로로 곧게 지나가므로, 한 고리는 가로로 다른 고리는 세로로 통과한다. 올바르게 교차하는 예는 그림 H.5와 같다.
| 그림 H.4: 교차점과 그 주변 칸 | 그림 H.5: 올바르게 교차하는 고리 |
|---|---|
![]() | ![]() |
첫째 줄에 빈 다이어그램의 행 수 r과 열 수 c가 주어진다 (7≤r,c≤100). 이어지는 r개의 줄에는 각각 c개의 문자로 이루어진 문자열이 주어진다. 고리 A에도 고리 B에도 속하지 않는 칸은 모두 마침표 .로 표시한다. 이름표 A와 B는 각 고리의 둘레에서 교차점이 아닌 위치에 하나씩 놓이고, 같은 고리에 함께 놓이지 않는다.
집합 A에만 속하는 영역의 넓이, 집합 B에만 속하는 영역의 넓이, 교집합의 넓이를 이 순서대로 한 줄에 공백 하나로 구분해 출력한다. 영역의 넓이는 그 영역이 둘러싸는 마침표 .의 개수이므로, 고리 문자가 놓인 칸은 넓이에 세지 않는다.