만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Aqualin

면접 대비

시간 제한1초메모리 제한1024 MB

요약
n×n 격자의 각 칸에 동물의 종류와 색이 주어질 때, 같은 종류와 같은 색으로 이어진 가장 큰 덩어리의 점수를 각각 구합니다.
난이도

쉬움10점 중 3점

유형
BFS, 행렬, 구현
정답자
아직 제출이 없습니다

문제

보드 게임 Aqualin은 n×nn \times n 격자판에서 진행된다. 각 칸에는 말이 하나씩 놓인다. 말은 동물이며, 동물 종류와 색깔이라는 두 속성을 가진다. 종류는 'A'부터 'Z'까지의 문자이고, 색깔은 1부터 nn까지의 번호이다.

격자판의 n2n^2 칸이 모두 채워지면 점수를 계산한다. 두 팀이 점수를 얻는다.

첫 번째 팀은 같은 종류의 동물로 이루어진 가장 큰 연결 요소에 점수를 얻는다. 크기가 2 이상인 연결 요소만 대상이다. 크기가 cc인 연결 요소는 1+2+⋯+(c−1)1 + 2 + \cdots + (c-1)점을 얻는다. 크기가 1인 연결 요소는 점수가 없다. 같은 종류의 연결 요소가 여러 개면 그중 가장 큰 것만 점수를 얻는다. 두 동물은 상하좌우로 맞닿아 있고 종류가 같을 때 연결되며, 이런 동물을 따라 간접적으로 이어져도 연결된다.

두 번째 팀은 종류 대신 색깔을 기준으로 같은 방식으로 점수를 얻는다.

같은 종류와 색깔의 조합이 여러 번 나올 수도 있고, 전혀 나오지 않을 수도 있다.

입력

첫 줄에 격자판의 행과 열의 수 nn (2≤n≤262 \le n \le 26)이 주어진다. 이어지는 nn개의 줄에는 격자판의 각 행이 주어진다. 한 행은 nn개의 항목으로 이루어지고, 각 항목은 동물 종류 xx ('A' ≤x≤\le x \le 'Z')와 색깔 yy (1≤y≤n1 \le y \le n)를 나타낸다. 항목은 첫 번째 열부터 시작하며, 값 사이는 공백 한 칸으로 구분한다.

출력

첫 번째 팀의 점수, 공백 한 칸, 두 번째 팀의 점수를 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    5
    B 3 A 1 C 1 A 2 A 5
    B 4 B 1 B 5 E 4 E 3
    C 3 C 2 B 2 D 2 E 2
    A 3 C 4 A 4 E 5 D 1
    D 3 C 5 D 4 D 5 E 1
    
    예상 출력
    21 16
    
  2. 예제 2

    입력
    2
    A 1 B 1
    A 1 B 1
    
    예상 출력
    2 6