문제
거대한 벌집 네트워크 위에 벌(타일)이 배치되어 있다. 아래 통로 규칙과 군집(연결요소) 점수 규칙에 따라
정올이(선공, 성격 기준)와 한글이(후공, 색 기준)의 총점을 계산하는 프로그램을 작성하시오.
1. 벌집 네트워크 구성
열:
a, b, c, d, e, f(왼→오, 6개)행:
1, 2, 3, 4, 5, 6(아래→위, 6개)각 (열, 행)마다 위/아래 두 층의 방이 있어 총 72개 방이 존재한다.
방 표기:
열문자 + 행숫자 + 층기호U= 위층(Up),D= 아래층(Down)예)
c5D,f4U
통로(인접) 규칙
통로는 한쪽 방향으로 설계되었으나 짝 방을 통해 실질적으로 양방향이 된다(경계 밖은 무시).
D방의 이웃(모두U방):같은 칸의
U(x,y,D↔x,y,U)왼쪽 열 같은 행의
U(x-1,y,U)같은 열의 아래 행
U(x,y-1,U)
U방의 이웃(모두D방):같은 칸의
D(x,y,U↔x,y,D)오른쪽 열 같은 행의
D(x+1,y,D)같은 열의 위 행
D(x,y+1,D)
위 두 규칙의 합집합이 무방향 인접 그래프를 이룬다.
2. 벌의 속성
색(4종):
C(Cyan),P(Purple),M(Mint),F(Fuchsia)성격(4종):
1, 2, 3, 4한 테스트 케이스에서 동일한 (색, 성격) 조합은 최대 4개까지만 등장한다.
(총 16종 × 4개 = 최대 64마리이므로 72칸 중 일부는 비어 있을 수 있다.)표기:
색문자+성격숫자(예:C3,F2)
3. 점수 규칙
입력으로 벌이 놓인 방들만 정점으로 하여 그래프를 만든다. 인접한 두 벌이 아래 조건을 만족하면 간선을 둔다.
색 그래프: 인접하고 색이 같은 경우 연결
성격 그래프: 인접하고 성격이 같은 경우 연결
각 기준별 연결요소(컴포넌트)를 형성하며, 각 벌의 점수는 다음과 같다.
정올이(선공): 해당 벌이 속한 성격-컴포넌트의 크기
한글이(후공): 해당 벌이 속한 색-컴포넌트의 크기
각 플레이어의 총점은 자신의 기준으로 모든 벌의 점수 합이다.
입력
첫 줄에 테스트 케이스의 수
각 테스트 케이스마다 첫 줄에 벌이 놓인 방의 개수
이어
[제약 조건]
1 ≤ T ≤ 1000 1 ≤ N ≤ 64 방의 정보는 [a-f][1-6][UD]의 형태로
a1U,d4U,f6D등과 같이 주어진다.벌의 정보는 [CPMF][1-4]의 형태로
C1,P2,M4,F3등과 같이 주어진다.같은 테스트 케이스 내에서 방의 정보가 중복되어 주어지지 않는다.
출력
각 테스트 케이스마다 한 줄에 정올이의 총점과 한글이의 총점을 공백으로 구분하여 출력한다.
부분문제
| 번호 | 점수 | 조건 |
|---|---|---|
| #1 | 20점 | |
| #2 | 30점 | 주어지는 벌은 모두 |
| #3 | 50점 | 추가 제약 조건 없음 |
예제 #1
1
10
b5U C4
c5D C2
c5U P2
a4U M2
b6D F4
a5D M1
b5D P4
c4U C3
b4D F2
b4U P2
24 20
정올이(선공, 성격 기준)
1 (성격 1): 1점 × 1개 = 1점
2 (성격 2): 3점 × 3개 + 2점 × 2개 = 13점
3 (성격 3): 1점 × 1개 = 1점
4 (성격 4): 3점 × 3개 = 9점
총점: 1 + 13 + 1 + 9 = 24점
한글이(후공, 색 기준)
C (Cyan): 3점 × 3개 = 9점
P (Purple): 2점 × 2개 + 1점 × 1개 = 5점
M (Mint): 2점 × 2개 = 4점
F (Fuchsia): 1점 × 1개 + 1점 × 1개 = 2점
총점: 9 + 5 + 4 + 2 = 20점
예제 #2
2
2
c3D C1
e5D C1
2
f4D C1
e4U C1
2 2
4 4