타자연습
면접 대비시간 제한8초메모리 제한1024 MB
A부터 D로만 이루어진 문자열을 최대 6개 입력받아, 모든 문자열을 부분열로 포함하는 가장 짧은 문자열을 찾고 그중 사전순으로 가장 앞선 것을 출력한다.
문제
민규와 명진이는 타자연습 대결을 하고 있다. 타자연습은 개의 단어로 이루어져 있으며, 각 단어는 알파벳 대문자 A부터 D까지로만 이루어져 있다. 단어의 첫 글자부터 시작해 현재 위치의 글자에 해당하는 정확한 글자를 입력하면 다음 글자로 넘어가며, 모든 글자를 입력했다면 엔터 키를 눌러 다음 단어로 넘어간다. 이 프로그램은 오타에 관대하기 때문에 잘못된 글자를 입력하면 패널티 없이 무시된다. 즉, 단어들을 수열로 보았을 때 타자연습에 주어진 단어가 입력한 글자들을 모은 단어의 부분 수열이면 단어 입력에 성공한 것이다.
민규는 실력이 부족해 명진이를 이길 수 없자 꼼수를 쓰기로 했다. 프로그램이 허술해 붙여넣기가 가능한 것을 발견한 민규는 단어 하나만 만들어 계속 붙여넣는 것으로 모든 단어를 순식간에 통과하려고 한다. 즉, 민규의 단어는 단어들을 수열로 보았을 때 개의 단어를 모두 부분 수열로 가져야 한다. 민규는 타자 속도가 느리므로 그 단어의 길이를 최소로 하고 싶다. 민규를 위해 사용할 단어를 구하는 프로그램을 작성하여라.
입력
첫 번째 줄에 단어의 수 이 주어진다.
이후 개의 줄에 걸쳐 타자연습 단어를 나타내는 문자열 가 주어진다. 는 대문자 A, B, C, D로만 이루어져 있으며 길이는 이하이다.
출력
첫 번째 줄에 사용할 문자열을 출력한다. 가능한 문자열이 여럿 있을 경우 사전순으로 최소인 것을 출력해야 한다.