직육면체 나누기
시간 제한5초메모리 제한512 MB
A x B x C 크기의 직육면체에서 N개의 단위 정육면체를 제거한 뒤 남은 정육면체들이 면을 공유해 이루는 연결 요소의 개수를 센다. 상자 크기는 최대 10^6이지만 N은 20000 이하다.
문제
파블로 큐바슨은 큐비즘 작가다. 이번 작품은 단위 정육면체 개로 이루어진 직육면체를 깎아서 만든다. 그는 이 직육면체에서 단위 정육면체 개를 빼내 원하는 형태를 만들 계획이다. 작업을 시작하려던 참에, 정육면체를 빼내면 남은 부분이 서로 맞닿지 않는 여러 덩어리로 갈라질 수 있다는 사실을 알아차렸다. 작품이 여러 덩어리로 갈라지는 것은 그의 미의식에 어긋나므로, 계획대로 빼냈을 때 덩어리가 몇 개 생기는지 알고 싶어 한다.
정육면체 개를 빼낸 뒤 남은 단위 정육면체가 이루는 연결 요소의 개수를 구하라. 두 정육면체는 한 면을 맞대고 있을 때 서로 연결되어 있다.
입력
입력은 테스트 케이스 하나로 이루어지며, 형식은 다음과 같다.
A B C N
X1 Y1 Z1
...
XN YN ZN
첫째 줄에 정수 , , , 이 주어진다. , , ()는 직육면체의 크기로, 폭은 왼쪽에서 오른쪽으로 , 높이는 아래에서 위로 , 깊이는 앞에서 뒤로 이다. (, )은 빼낼 정육면체의 개수다.
다음 개의 줄에는 각각 정수 (), (), ()가 주어진다. 왼쪽에서 칸, 아래에서 칸, 앞에서 칸 떨어진 자리의 정육면체를 빼낸다는 뜻이다. 좌표는 0부터 센다. 주어지는 위치는 모두 서로 다르다.
출력
정육면체를 빼내고 남은 부분의 연결 요소 개수를 한 줄에 출력한다.