만드는 중입니다

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

아방가르드 자동 수정

면접 대비

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

요약
빈도순으로 정렬된 사전을 이용한 자동완성 키보드에서 메시지의 각 단어를 입력하는 데 필요한 최소 키 입력 수를 구합니다.
난이도

보통10점 중 6점

유형
트라이, 동적 계획법, 문자열
정답자
아직 제출이 없습니다

문제

Filip과 Luka는 한 WhatsApp 그룹에서 각자 살아가는 이유를 찾았다. 둘 다 그룹의 나머지 사람들을 즐겁게 하는 것이 목표지만, 방법은 전혀 다르다.

Filip은 계산이 치밀한 사람이다. 그의 메시지는 하나하나 신중하게 고른 것이고, 보통 그룹의 다른 멤버 최소 한 명의 미소를 끌어낸다. 가끔은 자기 자신을 보고 웃기도 한다.

Luka는 말솜씨가 뛰어나고 아는 것이 많은 사람이다. 그는 재미있거나 난처했던 일을 많이 되풀이해 들려주면서, poistovječivanje sa situacijama, 즉 상황에 자신을 겹쳐 보는 기법으로 일행을 즐겁게 한다.

Luka는 분당 60단어 정도밖에 입력하지 못해서 이 기법을 온전히 쓰지 못할 때가 있다. 그래서 iPhone이 제공하는 가장 전위적인 자동 수정 기능을 설치하기로 했다.

Luka의 자동 수정 기능에는 사용 빈도 순으로 정렬된 n개의 단어가 담긴 사전이 있다. Luka가 단어를 입력할 때마다 자동 수정은 지금까지 입력한 글자로 시작하는 단어 중 가장 많이 쓰인 단어를 제안한다(그런 단어가 있는 경우). tab 키를 누르면 제안된 단어를 완성할 수 있고, 필요하면 이어서 계속 입력할 수 있다. 자동 수정은 글자가 하나 이상 입력된 뒤에만 쓸 수 있다.

Luka는 m개의 단어로 된 메시지를 입력하려 한다. 각 단어마다 그 단어를 쓰는 데 필요한 키 입력 횟수의 최솟값을 알고 싶다. Luka는 tab 키, backspace 키, 그리고 글자마다 하나씩 있는 키를 쓸 수 있다.

Luka가 각 단어를 입력하는 데 필요한 키 입력 횟수의 최솟값을 계산하도록 도와 달라.

입력

첫 줄에는 자연수 nn과 mm이 주어진다 (1≤n≤100 0001 \le n \le 100\,000, 1≤m≤100 0001 \le m \le 100\,000).

다음 nn개의 줄에는 자동 수정이 아는 단어가 사용 빈도 순서대로(가장 많이 쓰인 단어가 먼저) 주어진다.

그다음 mm개의 줄에는 Luka가 입력하려는 단어가 한 줄에 하나씩 주어진다.

모든 단어는 영어 소문자로만 이루어져 있다. 입력 파일의 크기는 1 MB보다 작다.

출력

mm개의 줄을 출력한다. 메시지의 각 단어마다 Luka가 그 단어를 입력하는 데 필요한 키 입력 횟수의 최솟값을 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    5 5
    austria
    autocorrect
    program
    programming
    computer
    autocorrelation
    programming
    competition
    zyx
    austria
    
    예상 출력
    12
    4
    11
    3
    2
    
  2. 예제 2

    입력
    5 3
    yogurt
    you
    blessing
    auto
    correct
    bless
    you
    autocorrect
    
    예상 출력
    5
    3
    9