끝말잇기

시간 제한2초메모리 제한128 MB

요약
모음으로만 이루어진 최대 16개의 단어를 끝 글자와 다음 단어의 첫 글자가 같도록 이어붙여 사용한 단어 길이의 합을 최대화합니다.
난이도

보통10점 중 6점

유형
비트 연산, 동적 계획법, 그래프
정답자
아직 제출이 없습니다

문제

사전에 있는 단어들을 골라 순서대로 나열하려고 한다. 앞 단어의 마지막 글자와 다음 단어의 첫 글자가 같아야 한다.

사용할 수 있는 단어는 사전에 있는 단어뿐이며, 같은 단어를 두 번 이상 사용할 수 없다. 사전의 모든 단어는 대문자 모음 A, E, I, O, U로만 이루어져 있다. 첫 단어는 자유롭게 고를 수 있다.

사용한 단어 길이의 합이 점수이다. 규칙을 만족하도록 단어를 나열했을 때 얻을 수 있는 최대 점수를 구하라.

입력

첫째 줄에 사전에 포함된 단어의 수 N이 주어진다. (1 ≤ N ≤ 16)

둘째 줄부터 N개의 줄에 사전에 포함된 단어가 한 줄에 하나씩 주어진다. 각 단어는 대문자 A, E, I, O, U로만 이루어져 있으며, 길이는 100을 넘지 않는다. 같은 단어는 두 번 주어지지 않는다.

출력

규칙에 맞게 단어를 나열했을 때 얻을 수 있는 최대 점수를 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    3
    AEIOU
    UIU
    EO
    
    예상 출력
    8
    
  2. 예제 2

    입력
    4
    AEEEO
    OEOAEEE
    AO
    O
    
    예상 출력
    13
    
  3. 예제 3

    입력
    5
    IOO
    IUUO
    AI
    OIOOI
    AOOI
    
    예상 출력
    16