문제
베시는 멋진 망원경을 사용해 밤하늘의 모든 별을 사진으로 찍고 있다. 그녀의 망원경은
그런데 밤새 이상한 일이 벌어졌다. 모든 별이 사라지거나, 오른쪽으로
베시는 별들의 이동 전과 후를 사진으로 찍었지만, 이미지 편집 프로그램인 Mootoshop에서 실험하다가 실수로 두 사진을 겹쳐버렸다.
이제 그녀는 사진을 다음과 같은 방식으로 볼 수 있다.
흰색(W, White): 두 사진에서 모두 빈 공간(즉, 별이 없는 부분)
회색(G, Gray): 별이 한 사진에서만 존재하는 경우
검은색(B, Black): 별이 두 사진에서 모두 존재하는 경우
또한, 베시는 새로운 별이 두 번째 사진의 프레임 안으로 들어온 경우는 없다는 것을 기억하고 있다. 즉, 첫 번째 사진에는 모든 별이 포함되어 있었다.
주어진 최종 사진을 보고, 별이 이동하기 전 최소한 몇 개의 별이 존재했는지를 구하는 프로그램을 작성하라.
만약 어떤 별의 배치도 주어진 최종 사진을 만들 수 없다면 -1을 출력하라.
입력
첫 번째 줄에는
각 테스트 케이스는 다음과 같이 주어진다.
첫 번째 줄에
N, A, B 가 주어진다. (1≤N≤1000 )이후
N 개의 줄에는N×N 크기의 최종 사진이 주어진다.각 줄은 길이
N 의 문자열이며, 각 문자는W
(흰색),G
(회색),B
(검은색) 중 하나이다.
단, 모든 테스트 케이스에 대해
출력
각 테스트 케이스마다, 이동 전 최소한 몇 개의 별이 있었는지 출력하라.
만약 주어진 최종 사진을 만들 수 있는 초기 상태가 존재하지 않는다면 -1을 출력하라.
부분문제
번호 | 점수 | 조건 |
---|---|---|
#1 | 10점 | |
#2 | 20점 | |
#3 | 30점 | |
#4 | 40점 | 추가 제약 조건 없음 |
예제1
1
3 0 0
WWB
BBB
GGG
7
이동이 없었으므로( A = 0, B = 0 ) 첫 번째 사진은 다음과 같아야 한다.
( .: 빈 공간, *: 별)
..*
***
***
두 번째 사진에서는 아래쪽 행의 별들이 사라졌다.
..*
***
...
이 방법이 최종 사진을 만드는 유일한 방법이므로, 초기 별의 최소 개수는 7개이다.
예제2
3
5 1 2
GWGWW
WGWWW
WBWGW
WWWWW
WWGWW
3 1 1
WWW
WBW
WWW
3 1 0
GGB
GGW
WWW
4
-1
4
첫 번째 테스트 케이스에서 최소 4개의 별이 존재해야 했다. 가능한 별의 초기 위치는 다음과 같다.
(1,1), (3,2), (2,2), (1,3)
이 중 (2,2)의 별은 사라졌고, 나머지 별들은 이동했다.
두 번째 테스트 케이스에서는 어떤 배치도 주어진 최종 사진을 만들 수 없으므로 -1을 출력해야 한다.
세 번째 테스트 케이스에서는 최소 4개의 별이 존재해야 했다. 가능한 초기 위치는 (1,1), (1,2), (1,3), (2,1)이다.