차고 문 비밀번호
면접 대비시간 제한4초메모리 제한1024 MB
각 관찰 기록에 부분 수열로 포함되는 K자리 비밀번호를 모두 찾아 사전순으로 출력합니다.
문제
최근 우리 동네에서 노트북 도난이 늘고 있다. 얼마 전 내 노트북도 도난당해서, 이제 가만히 있지 않기로 했다. 여기저기 물어본 끝에 도난당한 노트북이 숨겨져 있다는 장소에 대한 소문을 들었고, 내 노트북을 되찾고 싶다.
소문을 따라 한 차고를 찾아갔고, 그곳으로 들어가는 방법을 알아내려고 지켜보기로 했다. 오후 내내 여러 사람이 차고에 들어갔다가 나오는 모습을 봤다.
차고 문에는 보안 키패드가 있다. 자세히 보니 사람마다 입력하는 자릿수가 달랐다. 일부, 어쩌면 전부가 누가 보고 있을 때 혼란을 주려고 일부러 키를 추가로 누르는 척하고 있는 것 같다. 제조사 웹페이지를 확인해 보니, 이 키패드는 정확히 자리 비밀번호를 쓰도록 설계되어 있다. 올바른 비밀번호를 포함하면서 길게 늘인 입력을 한 사람들의 관찰 결과 개가 주어졌을 때, 올바른 비밀번호가 무엇인지 알아낼 수 있을까? 적어도 하나의 올바른 비밀번호가 모든 관찰 결과와 일치한다고 보장된다. 일치하는 비밀번호가 여럿일 수 있으며, 그 전부를 구해야 한다.
입력
입력의 첫 줄에는 두 정수 ()와 ()이 주어진다. 는 제조사가 정한 올바른 비밀번호의 자릿수이고, 은 관찰한 길게 늘인 입력 기록의 개수이다.
이어지는 개 줄에는 각각 최소 자리, 최대 12자리의 숫자(0-9)로 이루어진 문자열이 한 줄씩 주어진다. 이것이 관찰한 길게 늘인 입력 기록이다.
출력
관찰 결과 전체와 일치하는 자리 비밀번호를 모두 구하라.
첫 줄에 관찰 결과와 일치하는 비밀번호의 개수 을 출력한다. 이어서 개 줄에 일치하는 비밀번호를 사전순으로 정렬해 한 줄에 하나씩 출력한다.