만드는 중입니다

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

외계 운율

면접 대비

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

요약
각 단어의 강세 위치를 정해, 같은 접미사를 가진 단어끼리 짝을 지을 때 짝지을 수 있는 단어의 최대 개수를 구합니다.
난이도

보통10점 중 5점

유형
트라이, 그리디, 문자열
정답자
아직 제출이 없습니다

문제

외계 탐사 중에 외계 시의 흔적이 발견되었다. 언어학자 팀에 따르면 외계어의 각 단어에는 정확히 한 위치(글자)에 강세가 있다. 단어에서 강세가 있는 글자부터 끝까지의 부분을 강세 접미사라고 부른다. 두 단어의 강세 접미사가 서로 같으면 두 단어는 운이 맞는다고 한다. 예를 들어 PROL과 TARPOL은 두 단어 모두 강세가 O 또는 L에 있으면 운이 맞는다. 강세가 R에 있거나, PROL의 R과 TARPOL의 P에 있거나, PROL의 O와 TARPOL의 L에 있으면 운이 맞지 않는다.

외계 시의 일부일 수 있는 단어 NN개의 목록이 있다. 각 단어의 강세 위치는 모른다. 단어 중 0개 이상을 버릴 수 있고, 남은 단어에 강세 위치를 정한 뒤 단어들을 두 개씩 짝지을 수 있다. 각 단어는 자기 짝과만 운이 맞고, 다른 짝의 어떤 단어와도 운이 맞지 않아야 한다.

이런 방식으로 짝지을 수 있는 단어의 최대 개수를 구하라.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. 이어서 TT개의 테스트 케이스가 나온다. 각 테스트 케이스는 정수 NN만 적힌 줄로 시작한다. 그 뒤 NN개의 줄에 대문자 영어 알파벳으로 이루어진 문자열 WiW_i가 한 줄에 하나씩 주어진다. 한 테스트 케이스 안의 단어는 모두 서로 다르다. 같은 단어라도 테스트 케이스마다 강세 위치는 다를 수 있다.

출력

각 테스트 케이스마다 Case #x: y 형식으로 한 줄을 출력한다. xx는 테스트 케이스 번호(1부터 시작), yy는 위 조건을 만족하는 단어 부분집합의 최대 크기이다.

제한

  • 1≤T≤1001 \le T \le 100.
  • 모든 ii에 대해 1≤∣Wi∣≤501 \le |W_i| \le 50.
  • 모든 ii에 대해 WiW_i는 대문자 영어 알파벳으로만 이루어진다.
  • i≠ji \ne j이면 Wi≠WjW_i \ne W_j. 한 테스트 케이스 안에서 단어는 중복되지 않는다.

힌트

예시 1에서는 적절히 강세를 정하면 두 단어가 운이 맞으므로, 최대 부분집합은 입력 전체이다.

예시 2에서는 강세를 어떻게 정하더라도 운이 맞는 단어 쌍이 없다. 어떤 두 접미사든 적어도 마지막 글자가 다르기 때문이다. 따라서 최대 부분집합은 공집합이며 크기는 0이다.

예시 3에서는 여섯 단어를 모두 쓸 수 있다. CODEJAM과 JAM은 J에, HAM과 NALAM은 마지막 A에, HUM과 NOLOM은 M에 강세를 둔다.

예시 4에서는 어떤 두 단어든 운이 맞게 만들 수 있지만, 강세를 모두 I로 두어야만 가능하다. 짝을 두 쌍 이상 더하면 서로 다른 짝의 단어끼리도 운이 맞게 된다. 따라서 입력 단어 중 아무 두 개를 고른, 크기 2인 부분집합이 최대이다.

예제1

  1. 예제 1

    입력
    4
    2
    TARPOL
    PROL
    3
    TARPOR
    PROL
    TARPRO
    6
    CODEJAM
    JAM
    HAM
    NALAM
    HUM
    NOLOM
    4
    PI
    HI
    WI
    FI
    
    예상 출력
    Case #1: 2
    Case #2: 0
    Case #3: 6
    Case #4: 2