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

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

프리 윌리

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

요약
주어진 위치 순열을 최대 L번 적용해 시작 단어를 목표 단어로 바꾸는 최소 횟수를 구합니다.
난이도

보통10점 중 6점

유형
BFS, 그래프, 문자열
정답자
아직 제출이 없습니다

문제

윌리는 우리에 갇혀 있다. 감시원이 자유를 걸고 문제를 낸다.

길이가 NN인 단어 두 개와 쓸 수 있는 순열 PP개가 주어진다. 순열은 알파벳 앞쪽 NN글자를 한 번씩 사용한 소문자 문자열로 적는다. 단어 ww에 순열 qq를 적용하면 새 단어가 나오고, 새 단어의 ii번째 글자는 ww의 qiq_i번째 글자다. 여기서 qiq_i는 qq의 ii번째 글자가 알파벳에서 몇 번째인지를 뜻한다. a는 1, b는 2로 센다.

순열 bcdefaghi를 단어 KULTURUKE에 적용하면 ULTURKUKE가 된다. 앞의 여섯 글자가 왼쪽으로 한 칸씩 돌고 나머지는 제자리에 남는다.

윌리는 주어진 순열만 쓸 수 있고, 같은 순열을 여러 번 써도 된다. 순열 적용을 LL번 이내로 반복해서 첫 번째 단어를 두 번째 단어로 바꾸면 우리가 열린다. 최소 몇 번 적용하면 되는지 구하라.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. (T≤30T \le 30)

각 테스트 케이스의 첫 줄에는 NN, PP, LL이 공백으로 구분되어 주어진다. (1≤N≤261 \le N \le 26, 1≤P≤101 \le P \le 10, 1≤L≤101 \le L \le 10)

둘째 줄에는 길이가 NN인 단어 두 개가 공백으로 구분되어 주어진다. 두 단어는 영문자로만 이루어진다.

이어지는 PP개의 줄에는 쓸 수 있는 순열이 한 줄에 하나씩 주어진다. 각 순열은 알파벳 앞쪽 NN글자를 소문자로 한 번씩 사용한 문자열이다.

출력

각 테스트 케이스마다 한 줄씩 출력한다. 첫 번째 단어를 두 번째 단어로 바꾸는 데 필요한 최소 적용 횟수를 출력하고, LL번 이내로 바꿀 수 없으면 whalemeat을 출력한다.

예제1

  1. 예제 1

    입력
    3
    9 6 5
    KULTURUKE UKTURKULE
    bcdefaghi
    cabfdeghi
    bcadefghi
    adcefgbhi
    cgabdefhi
    cdaefhgbi
    9 5 4
    kulturuke tlukuruke
    bcdefaghi
    cabfdeghi
    bcadefghi
    adcefgbhi
    cgabdefhi
    9 3 4
    WILLFREEY FREEWILLY
    bacdefghi
    abghefdic
    fecdbaigh
    
    예상 출력
    4
    whalemeat
    4