만드는 중입니다

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

극비 메시지

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

요약
진법 b의 숫자 단어들과 암호문이 주어질 때, 무작위 글자를 제외하고 만들 수 있는 가장 큰 수를 구합니다. 맞는 수가 없으면 0을 출력합니다.
난이도

보통10점 중 7점

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

문제

요원 존은 극비 수 NN을 알고 있다. 그는 NN의 각 자리를 밑이 bb인 진법으로 적은 뒤, 고대 바이토테인 언어의 단어로 바꿔 썼다. 각 자리는 영어 소문자 나열로 표현된다. 그는 메시지의 맨 앞, 맨 뒤, 또는 연속한 두 자리 사이에 임의의 문자를 0개 이상 넣었다. 임의의 문자는 자리 단어 안에 나타나지 않는다. 바이토테인에는 0을 가리키는 단어가 없었고, NN에는 0인 자리가 없다. 암호화된 메시지는 모호할 수 있다. 주어진 메시지를 만들 수 있는 가장 큰 수 NN을 구하라.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스는 밑 bb (3≤b≤5⋅1043 \le b \le 5 \cdot 10^4)로 시작한다. 이어서 b−1b-1개의 줄이 주어지며, ii번째 줄에는 자리 ii의 단어가 주어진다. 단어는 비어 있지 않고 서로 다르며, 단어 길이의 합은 5⋅1055 \cdot 10^5 이하이다. 각 테스트 케이스의 마지막 줄은 암호화된 메시지이며, 길이는 3⋅1053 \cdot 10^5 이하이다.

출력

각 테스트 케이스마다 조건을 만족하는 가장 큰 수의 자리를 공백으로 구분해 한 줄에 출력한다. 조건을 만족하는 수가 없으면 0을 출력한다.

예제1

  1. 예제 1

    입력
    1
    10
    one
    two
    three
    four
    five
    six
    seven
    eight
    nine
    twohundredsixtynine
    
    예상 출력
    2 6 9