페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#8681
서브태스크

벌집 네트워크 1s 1024MB

문제

거대한 벌집 네트워크 위에 벌(타일)이 배치되어 있다. 아래 통로 규칙과 군집(연결요소) 점수 규칙에 따라
정올이(선공, 성격 기준)와 한글이(후공, 색 기준)의 총점을 계산하는 프로그램을 작성하시오.


1. 벌집 네트워크 구성

  • 열: a, b, c, d, e, f (왼→오, 6개)

  • 행: 1, 2, 3, 4, 5, 6 (아래→위, 6개)

  • 각 (열, 행)마다 위/아래 두 층의 방이 있어 총 72개 방이 존재한다.

  • 방 표기: 열문자 + 행숫자 + 층기호

    • U = 위층(Up), D = 아래층(Down)

    • 예) c5D, f4U

통로(인접) 규칙

통로는 한쪽 방향으로 설계되었으나 짝 방을 통해 실질적으로 양방향이 된다(경계 밖은 무시).

  • D 방의 이웃(모두 U 방):

    1. 같은 칸의 U (x,y,Dx,y,U)

    2. 왼쪽 열 같은 행의 U (x-1,y,U)

    3. 같은 열의 아래 행 U (x,y-1,U)

  • U 방의 이웃(모두 D 방):

    1. 같은 칸의 D (x,y,Ux,y,D)

    2. 오른쪽 열 같은 행의 D (x+1,y,D)

    3. 같은 열의 위 행 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. 점수 규칙

입력으로 벌이 놓인 방들만 정점으로 하여 그래프를 만든다. 인접한 두 벌이 아래 조건을 만족하면 간선을 둔다.

  • 색 그래프: 인접하고 색이 같은 경우 연결

  • 성격 그래프: 인접하고 성격이 같은 경우 연결

각 기준별 연결요소(컴포넌트)를 형성하며, 각 벌의 점수는 다음과 같다.

  • 정올이(선공): 해당 벌이 속한 성격-컴포넌트의 크기

  • 한글이(후공): 해당 벌이 속한 색-컴포넌트의 크기

각 플레이어의 총점은 자신의 기준으로 모든 벌의 점수 합이다.


입력

첫 줄에 테스트 케이스의 수 T가 주어진다.

각 테스트 케이스마다 첫 줄에 벌이 놓인 방의 개수 N이 주어진다.

이어 N줄에 걸쳐 각 줄에 방의 정보와 해당 방에 위치한 벌의 정보가 주어진다.

[제약 조건]

  • 1 ≤ T ≤ 1000

  • 1 ≤ N ≤ 64

  • 방의 정보는 [a-f][1-6][UD]의 형태로 a1U, d4U, f6D 등과 같이 주어진다.

  • 벌의 정보는 [CPMF][1-4]의 형태로 C1, P2, M4, F3 등과 같이 주어진다.

  • 같은 테스트 케이스 내에서 방의 정보가 중복되어 주어지지 않는다.


출력

각 테스트 케이스마다 한 줄에 정올이의 총점과 한글이의 총점을 공백으로 구분하여 출력한다.


부분문제

번호 점수 조건
#120점

N=2

#230점

주어지는 벌은 모두 C1이다.

#350점

추가 제약 조건 없음


예제 #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


출처

New York Programming Contest 2025

로그인해야 코드를 작성할 수 있어요.