싱조는 변태코더다. 그는 어느날 어떤 c코드를 보고 신기해 하였다.
printf("%c", 3["abcdef"]); // 출력 결과 : d
어떻게 이런결과가 나오나 궁금한 싱조는 다음과 같은 사실을 알아내었다. a[b] = *(a+b) = *(b+a) = b[a]
이것을 알아낸 싱조는 지금까지 짠 코드를 다음과 같이 이상하게 바꿔보기로 하였다.
return d[b[a][c]]; // return a[b][c][d];
높은 차원의 배열을 이렇게 이상한 형태로 만드는것은 힘든일이다. 그래서 싱조는 n차원 배열 a의 형태중 알파벳순으로 m번째 형태를 찾으려 한다.
각 입력은 자연수 n과 m이 주어집니다. (1<=n<=25, m은 n차원배열의 하나의 원소를 표현하는 모든 형태의 개수 이하인게 보장된다) 입력의 끝은 0입니다.
입력 2 2 3 7 5 32 3 5 0 출력 b[a][c] d[c[a[b]]] f[e[d[c[b[a]]]]] d[a[b][c]]
출처:q5123444