만드는 중입니다

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

반복 게임

면접 대비

시간 제한5초메모리 제한512 MB

요약
같은 문자를 늘리거나 줄이는 연산만으로 N개 문자열을 똑같이 만드는 최소 이동 횟수를 구합니다.
난이도

보통10점 중 5점

유형
문자열, 정렬, 수학
정답자
아직 제출이 없습니다

문제

페글라와 오마르는 매일 게임을 한다. 그런데 알고 있는 게임에 모두 싫증이 나서 새 게임을 하나 만들었고, 이름을 "The Repeater"라고 붙였다.

두 사람이 하는 게임이다. 페글라가 문자열 NN개를 적으면, 오마르는 아래 두 가지 연산만 써서 문자열을 모두 똑같이 만들어야 한다. 연산 횟수는 최소여야 하며, 0번일 수도 있다.

  • 어느 문자열에서든 문자 하나를 골라 그 문자와 같은 문자를 바로 뒤에 하나 더 붙인다. 예를 들어 "abc"에서 'b'를 골라 한 번에 "abbc"로 바꿀 수 있다.
  • 어느 문자열에서든 서로 붙어 있는 같은 문자 두 개를 골라 그중 하나를 지운다. 예를 들어 "abbc"에서 'b' 하나를 지워 한 번에 "abc"로 바꿀 수 있다. 반면 "bbc"로는 바꿀 수 없다.

두 연산은 서로 독립이다. 첫 번째 연산 뒤에 두 번째 연산이 반드시 따라와야 하는 것은 아니고, 그 반대도 마찬가지다.

주어진 문자열을 모두 같게 만들 수 있는지 판정하고, 가능하다면 최소 연산 횟수를 구하는 프로그램을 작성해 오마르를 도와라.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. 이어서 테스트 케이스가 TT개 주어진다. 각 테스트 케이스의 첫 줄에는 문자열의 개수 NN이 주어지고, 다음 NN개의 줄에 문자열이 한 줄에 하나씩 주어진다. 각 문자열은 비어 있지 않고 알파벳 소문자 'a'부터 'z'로만 이루어져 있다.

제한

  • 1≤T≤1001 \le T \le 100
  • 각 문자열의 길이는 1 이상 100 이하
  • 2≤N≤1002 \le N \le 100

출력

각 테스트 케이스마다 한 줄에 "Case #x: y" 형식으로 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 문자열을 모두 같게 만드는 최소 연산 횟수다. 문자열을 모두 같게 만들 수 없다면 yy 자리에 Fegla Won을 출력한다. 큰따옴표는 출력하지 않는다.

예제4

  1. 예제 1

    입력
    5
    2
    mmaw
    maw
    2
    gcj
    cj
    3
    aaabbb
    ab
    aabb
    2
    abc
    abc
    3
    aabc
    abbc
    abcc
    
    예상 출력
    Case #1: 1
    Case #2: Fegla Won
    Case #3: 4
    Case #4: 0
    Case #5: 3
    
  2. 예제 2

    입력
    1
    2
    a
    a
    
    예상 출력
    Case #1: 0
    
  3. 예제 3

    입력
    1
    3
    abcdefghijklmnopqrstuvwxyz
    aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz
    aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
    
    예상 출력
    Case #1: 52
    
  4. 예제 4

    입력
    1
    2
    abababababababababababababababababababababababababababababababababababababababababababababababababab
    abababababababababababababababababababababababababababababababababababababababababababababababababab
    
    예상 출력
    Case #1: 0