크기의 마을이 있다. 마을의 각 칸은 주택 또는 공터이다.
시장은 공터에 나무를 심어 마을을 자연 친화적으로 만들려고 한다. 주택과 변 또는 꼭짓점을 공유하는 최대 개의 칸을 그 주택의 주변 칸이라고 하자.
나무를 심은 뒤 다음 두 조건을 만족해야 한다.
나무 한 그루를 심는 데에는 많은 비용이 든다. 조건을 만족하기 위해 심어야 하는 나무의 최소 개수를 구하여라.
입력은 다음과 같은 형식으로 주어진다.
각 테스트 케이스마다 조건을 만족하기 위해 심어야 하는 나무의 최소 개수를 한 줄에 출력한다. 조건을 만족하도록 나무를 심는 것이 불가능하다면 -1을 출력한다.
두 번째 테스트 케이스에서는 둘째 행의 가운데 공터에 나무 한 그루를 심으면 두 주택 모두의 주변에 나무가 생기므로 총합이 가 된다.
세 번째 테스트 케이스에는 주택이 없으므로 어떤 나무를 심더라도 총합은 이다.
각 케이스는 다음과 같은 형식으로 주어진다.
의 번째 문자가 #이면 행 열이 주택이고, .이면 공터이다.
# 또는 .이다. | 70 |
추가적인 제약이 없다. |