Editorial
- 1부터 k까지 외쳤을 때 짬뽕 문자열의 길이를 len(k)라 합시다. len(k)≥L인 가장 작은 k를 이분탐색으로 찾으면, L번째 문자는 k번째 차례에 있습니다.
- len(k)는 1부터 k까지의 수를 세 종류로 나누어 구합니다.
- 두 자리 이상이면서 맨 앞자리와 일의 자리가 모두 3, 6, 중 하나인 수: , 글자
JJAM과 PPONG은 JJAM부터 번갈아 나오고, JJAMPPONG은 이 순서에 영향을 주지 않습니다. 그래서 둘째 종류의 수가 c개이면 그 길이 합은 4⌈c/2⌉+5⌊c/2⌋입니다.
- 각 종류의 개수는 자릿수별로 맨 앞자리와 일의 자리를 따져 세면 됩니다. 한 번 세는 데 O(logk)가 듭니다.
- k를 찾은 뒤에는 k번째 차례부터 수를 하나씩 늘려 가며, 외칠 수나 단어를 R−L+1글자가 될 때까지 이어 붙입니다. 이때 k−1번째 차례까지 나온
JJAM·PPONG 개수로 다음 단어를 정합니다.
- 시간복잡도는 O(N(log2R+R−L))입니다.
9
JJAMPPONG
그 밖에 맨 앞자리나 일의 자리가 3, 6, 9 중 하나인 수: JJAM 또는 PPONG 나머지 수: 자릿수만큼