해킹

면접 대비

시간 제한1초메모리 제한512 MB

요약
알파벳 앞 k개 문자로만 이루어지고 주어진 문자열의 부분 문자열로 등장하지 않는 가장 짧은 단어를 찾되, 길이가 m 이하인 것 중 사전순으로 가장 앞선 것을 출력한다.
난이도

보통10점 중 6점

유형
문자열, 이분 탐색, 해시맵, 완전 탐색
정답자
아직 제출이 없습니다

문제

축구 월드컵 결승에 오른 어느 팀의 감독(그를 휴고 해커라고 부르자)이 경기 전에 상대 팀에 대한 비밀 정보를 알아내려 한다. 상대 팀 감독은 자기 팀에 대한 공개 정보를 담은 웹사이트를 운영하는데, 휴고는 그 웹사이트를 호스팅하는 컴퓨터에 비밀 정보도 저장되어 있을 것이라 의심한다.

그 웹사이트에는 키워드를 검색하면 그 키워드를 포함하는 텍스트 파일의 일부를 돌려주는 검색 폼이 있다. 휴고는 공개된 문서에 등장하지 않는 단어를 입력하면 검색 기능의 버그를 악용해 컴퓨터의 다른 파일에 접근할 수 있음을 알아냈다. 그는 공개된 문서의 내용을 이미 알고 있다. 다만 검색창에는 입력할 수 있는 단어의 최대 길이와 입력 가능한 문자에 제한이 있다. 검색창에 입력할 수 있으면서 그 문서들의 부분 문자열로는 나타나지 않는 단어를 찾아 줄 수 있는가?

입력

첫 줄에 뒤따르는 테스트 케이스의 수가 주어진다. 각 테스트 케이스는 두 줄로 이루어진다.

첫 줄에는 세 정수 nn, mm, kk 가 주어진다 (1≤n≤100001 \le n \le 10000, 1≤m≤1001 \le m \le 100, 1≤k≤261 \le k \le 26). 여기서 nn 은 공개된 문서의 길이, mm 은 검색창이 허용하는 단어의 최대 길이, kk 는 검색창이 알파벳의 처음 kk 개 문자만 허용함을 뜻한다. 둘째 줄에는 공개된 문서가 nn 개의 소문자로 이루어진 문자열로 주어진다.

출력

각 테스트 케이스마다 한 줄에, 알파벳의 처음 kk 개 문자만 사용하면서 주어진 문서의 부분 문자열로 나타나지 않는 단어를 출력한다. 답을 유일하게 만들기 위해, 그러한 단어 중 가장 짧은 것을 출력하고, 가장 짧은 것이 여럿이면 그중 사전순으로 가장 앞선 것을 출력한다. 처음 kk 개 문자로 이루어진 길이 mm 이하의 단어 중 부분 문자열이 아닌 것이 항상 존재함이 보장되므로, 이 가장 짧은 단어의 길이는 항상 mm 이하이다.

예제1

  1. 예제 1

    입력
    2
    9 3 2
    bbbaababb
    9 3 2
    aaabbabaa
    
    예상 출력
    aaa
    bbb