아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

외계어

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

요약
페이지당 단어 수와 페이지 번호가 주어지면 길이가 짧은 순으로, 길이가 같으면 사전 순으로 정렬한 타일 단어 목록에서 해당 페이지의 첫 단어와 마지막 단어를 출력합니다.
난이도

보통10점 중 7점

유형
조합론, 동적 계획법, 문자열
정답자
아직 제출이 없습니다

문제

밥 로버츠는 외계 종족 므카의 언어를 연구하는 언어학자다. 므카어 단어는 모두 a, ab, bb 세 조각을 이어 붙여 만든다. 진짜 므카 문자는 인쇄할 수 없어서 여기서는 a와 b로 적는다. 예를 들어 aaabbbbb와 aababb는 므카어 단어지만 babb는 아니다. 므카 사람이 모인 자리에서 babb를 문장에 넣어 쓰면 웃음거리가 된다. 글자 종류가 이렇게 적다 보니 세 조각으로 만들 수 있는 문자열은 모두 정상적인 단어다. 길이 상한이 있기는 하지만 이 문제에서는 상관없다.

밥은 정상적인 므카어 단어를 하나도 빠뜨리지 않고 영어로 풀이한 사전을 만들고 있다. 단어를 싣는 순서는 므카의 전통을 따른다. 길이가 1인 단어를 사전순으로 모두 싣고, 이어서 길이가 2인 단어를 사전순으로 모두 싣고, 같은 방식으로 계속한다.

한 사전 안에서는 어느 쪽이든 실리는 단어 개수가 같다. 다만 이 개수는 판형과 글자 크기에 따라 판마다 달라진다. 다른 사전과 마찬가지로 찾아보기 쉽도록 각 쪽의 첫 단어와 마지막 단어를 그 쪽 맨 위에 인쇄한다. 한 쪽에 싣는 단어 개수와 쪽 번호가 주어질 때, 그 쪽 맨 위에 인쇄되는 두 단어를 구하시오.

입력

각 테스트 케이스는 한 줄이고, 양의 정수 n과 m이 주어진다. n은 한 쪽에 싣는 단어 개수이고, m은 쪽 번호다. n≤30n \le 30이고 m≤1018m \le 10^{18}이다.

입력의 마지막 줄에는 0 0이 주어지며, 이 줄은 테스트 케이스가 아니다.

출력

각 테스트 케이스마다 Case k: x y를 한 줄에 출력한다. k는 1부터 세는 테스트 케이스 번호이고, x는 m쪽의 첫 단어, y는 m쪽의 마지막 단어다. 세 부분은 공백 한 칸으로 구분한다.

예제2

  1. 예제 1

    입력
    4 2
    9 10
    0 0
    
    예상 출력
    Case 1: aaa abb
    Case 2: bbbbaa aaaabab
    
  2. 예제 2

    입력
    1 1
    1 2
    1 3
    1 4
    1 5
    0 0
    
    예상 출력
    Case 1: a a
    Case 2: aa aa
    Case 3: ab ab
    Case 4: bb bb
    Case 5: aaa aaa