아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

휴대폰 자판

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

요약
사전의 각 단어에 대해 고유한 다음 글자가 자동 입력될 때 실제로 눌러야 하는 글자 수를 구하고, 그 평균을 소수 둘째 자리까지 출력한다.
난이도

보통10점 중 6점

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

문제

휴대폰에서 길이가 PP인 영어 단어를 입력하려면 버튼을 PP번 눌러야 한다. 그런데 어떤 연구원이 사전을 활용해 입력을 더 빠르게 해 주는 자판 모듈을 만들었다. 이 모듈은 지금까지 입력된 접두사 뒤에 올 수 있는 다음 글자가 사전 전체에서 단 하나뿐이라면, 그 글자를 버튼 입력 없이 자동으로 채워 준다. 동작 규칙은 다음과 같다.

  1. 모듈은 단어의 첫 글자는 추론하지 않는다. 즉, 사전의 모든 단어가 같은 글자로 시작하더라도 첫 글자는 반드시 사용자가 직접 눌러야 한다.
  2. 길이가 1 이상인 문자열 c1c2⋯cnc_1 c_2 \cdots c_n이 입력된 상태에서, "c1c2⋯cnc_1 c_2 \cdots c_n으로 시작하는 사전 속 모든 단어"가 예외 없이 "c1c2⋯cncc_1 c_2 \cdots c_n c로도 시작"하게 만드는 글자 cc가 존재하면, 모듈은 버튼 입력 없이 그 cc를 자동으로 입력한다. 그런 글자가 없으면 사용자의 입력을 기다린다.

예를 들어 사전에 "hello", "hell", "heaven", "goodbye" 네 단어가 있다고 하자. 사용자가 "h"를 누르면 "h"로 시작하는 단어는 모두 그다음이 "e"이므로 모듈이 "e"를 자동으로 채운다. 하지만 "hel"로 시작하는 단어도 "hea"로 시작하는 단어도 있으므로 여기서는 입력을 기다린다. 이어서 사용자가 "l"을 누르면 다음 글자가 "l"로 유일하므로 자동으로 채워진다. 그러나 여기서 끝나는 "hell"과 그렇지 않은 "hello"가 함께 있으므로 모듈은 다시 기다린다. "hell"을 원하면 여기서 멈추고, "hello"를 원하면 사용자가 직접 "o"를 눌러야 한다. 따라서 "hello"는 버튼을 3번, "hell"과 "heaven"은 각각 2번 눌러야 한다("heaven"은 "he" 다음에 "a"만 누르면 나머지가 모두 자동으로 채워진다). "goodbye"는 "g"만 누르면 이후 글자가 항상 유일하여 끝까지 자동으로 채워지므로 단 1번이면 된다. 이때 네 단어를 입력하는 데 필요한 버튼 횟수의 평균은 (3+2+2+1)/4=2.00(3 + 2 + 2 + 1) / 4 = 2.00이다.

사전이 주어졌을 때, 이 모듈을 사용해 사전의 각 단어를 입력하는 데 필요한 버튼 횟수의 평균을 구하는 프로그램을 작성하시오.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 파일의 끝까지 각 테스트 케이스를 순서대로 처리한다.

각 테스트 케이스의 첫째 줄에는 사전에 든 단어의 개수 NN이 주어진다(1≤N≤1051 \le N \le 10^5). 이어지는 NN개의 줄에는 길이가 1 이상 80 이하이고 영어 소문자로만 이루어진 단어가 한 줄에 하나씩 주어진다. 같은 단어가 두 번 주어지지는 않는다. 한 테스트 케이스에 등장하는 모든 단어의 길이 합은 최대 10610^6이다.

출력

각 테스트 케이스마다 정답을 소수점 아래 둘째 자리까지 반올림하여 한 줄에 출력한다.

예제6

  1. 예제 1

    입력
    4
    hello
    hell
    heaven
    goodbye
    3
    hi
    he
    h
    7
    structure
    structures
    ride
    riders
    stress
    solstice
    ridiculous
    
    예상 출력
    2.00
    1.67
    2.71
    
  2. 예제 2

    입력
    1
    a
    
    예상 출력
    1.00
    
  3. 예제 3

    입력
    1
    programming
    
    예상 출력
    1.00
    
  4. 예제 4

    입력
    2
    ab
    ac
    
    예상 출력
    2.00
    
  5. 예제 5

    입력
    2
    a
    ab
    
    예상 출력
    1.50
    
  6. 예제 6

    입력
    1
    z
    2
    ba
    bb
    
    예상 출력
    1.00
    2.00