가장 짧은 부분열이 아닌 문자열
시간 제한10초메모리 제한1024 MB
알파벳과 목표 문자열이 주어질 때, 각 질의 문자열이 목표 문자열의 부분수열이 아닌 가장 짧은 문자열인지 판정한다.
문제
문자열 에서 문자를 0개 이상 지워서 문자열 를 얻을 수 있을 때, 를 의 부분열이라고 한다. 는 에서 연속할 필요는 없지만, 의 문자들은 에서와 같은 순서로 나타나야 한다.
소문자 영어 알파벳 'a'부터 'z'까지의 부분집합 가 주어졌을 때, 문자열 의 모든 문자와 의 모든 문자가 에 속하면서 가 의 부분열이 아니면, 를 의 없는 부분열이라고 한다. 의 가장 짧은 없는 부분열은 의 없는 부분열 중 길이가 가장 짧은 것이다.
영어 알파벳 문자 집합, 그 집합의 문자로 이루어진 목표 문자열, 그 집합의 문자로 이루어진 질의 문자열 목록이 주어진다. 각 질의 문자열이 목표 문자열의 가장 짧은 없는 부분열인지 판별하라.
입력
첫째 줄에는 사전순으로 정렬된 소문자 문자열 ()가 주어진다. 각 문자는 최대 한 번 나타난다. 이는 알파벳 문자 집합이다.
둘째 줄에는 문자열 (, 는 의 문자만 포함)가 주어진다. 이는 질의의 대상이 되는 목표 문자열이다.
셋째 줄에는 정수 ()이 주어진다. 이는 질의의 수이다.
다음 개의 줄에는 각각 문자열 (, 는 의 문자만 포함)가 주어진다. 이들은 질의 문자열이다. 모든 질의 문자열의 길이의 합은 을 넘지 않는다.
출력
개의 줄을 출력한다. 각 줄에는 질의 문자열이 목표 문자열의 가장 짧은 없는 부분열이면 을, 아니면 을 출력한다. 출력은 입력된 질의 순서대로 이루어져야 한다.