만드는 중입니다

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

알 수 없는 문장

면접 대비

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

요약
문장을 주어진 단어들의 글자 순서를 바꿔 만든 부분 문자열들로 나누고, 원래 위치에서 이동한 글자 수의 총합을 최소화하는 문제입니다.
난이도

보통10점 중 5점

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

문제

어떤 사람들은 대화 내용을 쉽게 알아들을 수 없도록 새로운 언어를 만들었다.

이 언어에는 N개의 단어가 있다. 한 문장은 이 단어들을 공백 없이 이어 붙여 만든 문자열이다. 각 단어는 문장 안에서 0번 이상 사용할 수 있다.

단어를 사용할 때는 단어 안의 문자 순서를 바꿀 수 있다. 이때 원래 단어와 비교해 위치가 달라진 문자의 개수가 그 단어를 바꾸는 비용이다. 예를 들어 abc는 비용 0으로 abc가 되고, 비용 2로 acb, cba, bac가 되며, 비용 3으로 bca, cab가 된다.

주어진 문장을 이 언어의 단어들로 해석할 때 필요한 비용의 최솟값을 구하시오.

입력

첫째 줄에 해석할 문장이 주어진다. 문장의 길이는 최대 50이다.

둘째 줄에 단어의 개수 N이 주어진다. N은 50 이하의 자연수이다.

다음 N개의 줄에는 각 단어가 한 줄에 하나씩 주어진다. 각 단어의 길이는 최대 50이다.

문장과 단어는 모두 알파벳 소문자로만 이루어져 있다.

출력

문장을 해석할 수 있다면 필요한 최소 비용을 출력한다.

해석할 수 없다면 -1을 출력한다.

예제6

  1. 예제 1

    입력
    neotowheret
    4
    one
    two
    three
    there
    
    예상 출력
    8
    
  2. 예제 2

    입력
    abba
    3
    ab
    ac
    ad
    
    예상 출력
    2
    
  3. 예제 3

    입력
    thisismeaningless
    3
    this
    is
    meaningful
    
    예상 출력
    -1
    
  4. 예제 4

    입력
    ommwreehisymkiml
    11
    we
    were
    here
    my
    is
    mom
    here
    si
    milk
    where
    si
    
    예상 출력
    10
    
  5. 예제 5

    입력
    ogodtsneeencs
    6
    go
    good
    do
    sentences
    tense
    scen
    
    예상 출력
    8
    
  6. 예제 6

    입력
    sepawaterords
    2
    separate
    words
    
    예상 출력
    -1