Stringer
면접 대비시간 제한1초메모리 제한128 MB
N개 문자의 개수가 각각 정해져 있을 때 모든 순열을 사전순으로 나열했을 때 K번째 문자열을 구한다.
문제
알파벳의 처음 개 문자로만 이루어진 문자열들을 생각하자. 각 문자열에 들어가는 a의 개수, b의 개수 등은 문자마다 미리 정해진 값(서로 다를 수 있다)으로 고정되어 있다. 이러한 문자열을 모두 모아 사전순으로 나열하고 번부터 번호를 매긴다. 인덱스 가 주어질 때, 이 목록에서 번째 문자열을 출력하여라.
예를 들어 문자 개(a와 b)를 사용하고 a가 정확히 개, b가 정확히 개인 문자열들을 사전순으로 정렬하면 다음과 같다.
이면 답은 babab이다.
입력
입력은 여러 개의 데이터셋으로 이루어진다. 각 데이터셋은 두 줄로 구성된다.
첫 번째 줄에는 두 정수 과 가 주어진다 (, ). 여기서 은 사용하는 알파벳 문자의 개수, 는 찾고자 하는 목록 원소의 번호이며, 은 목록에 들어 있는 문자열의 총 개수이다. 은 입력으로 직접 주어지지 않는다.
은 매우 커서 전체 목록을 만드는 것이 불가능할 수도 있지만, 입력은 과 가 각각 부호 있는 32비트 정수 범위에 들어가도록 주어진다.
두 번째 줄에는 개의 음이 아닌 정수가 주어지며, 각각 a의 개수, b의 개수 등을 나타낸다. 이 정수들의 합은 최소 , 최대 이다.
입력의 끝은 두 개의 으로 이루어진 줄로 표시된다.
출력
각 데이터셋마다 답 문자열을 한 줄에 하나씩 출력한다. 불필요한 공백을 출력하지 말고, 답 사이에 빈 줄을 출력하지 마라.