당신의 피라미드
내가 만들고 싶은 피라미드는 전적으로 큐브로 만들어졌습니다. 여기에는 24 개의 레이어 가 있으며 상단 의 N 번째 레이어에는 N x N 정사각형으로 배열 된 N 2 큐브 가 있습니다 . 피라미드는 다음과 같습니다.
피라미드를 만들려면 큐브가 필요합니다. 다음과 같은 70 x 70 정사각형으로 배열 된 4900 개의 큐브가 제공됩니다.
(좋아, 나는 사각형의 그림이 완전히 불필요하다는 것을 인정한다.)
1 2 + 2 2 + 3 2 + ... + 24 2 = 70 2 이므로 피라미드를 만들기에 올바른 수의 큐브가 있습니다. 각 큐브가 어디로 가야하는지 알려 주기만하면됩니다.
당신의 작업
정사각형의 큐브와 피라미드의 큐브 사이에서 임의의 제거를 선택해야합니다. (당신의 대답이 당신이 사용하는 4900! 다른 bijections 중 어느 것이라고 말하면 좋을 것입니다.)
그런 다음 다음을 수행하는 함수 또는 프로그램을 작성하십시오.
- (좌표 값의 쌍으로 70 제곱하여 70 큐브의 위치 감안
(X,Y)
) - 피라미드에서의 위치를 세 번의 좌표로 출력합니다
(A,B,C)
.
입력 및 출력 좌표는 모두 0 인덱싱되거나 1 인덱싱 될 수 있습니다. 1- 색인으로 가정하면 입력 (X,Y)
은 1과 70 사이의 정수 쌍이 (A,B,C)
됩니다. 출력 은 3 배의 정수가됩니다. A
위에서부터 계산하는 레이어 여야하고 (1과 24 사이) (B,C)
해당 레이어 내에서 해당 큐브의 좌표 (1과 사이) 여야합니다 A
.
예를 들면 다음과 같습니다.
- 피라미드의 상단 큐브에는 좌표가
(1,1,1)
있습니다. - 피라미드의 바닥의 네 모서리가 좌표
(24,1,1)
,(24,1,24)
,(24,24,1)
,와(24,24,24)
. - 피라미드의 모서리에 사각형의 모서리를 배치하기로 결정하면 입력시
(70,1)
출력을 줄 수 있습니다(24,24,1)
.
(X,Y)
입력으로 유효한 좌표 만 제공한다고 가정 할 수 있습니다 . 정확성은 전적으로 다음 규칙에 의해 결정됩니다. 두 개의 다른 유효한 입력은 항상 두 개의 다른 유효한 입력을 제공해야합니다.
이것은 코드 골프입니다 : 가장 짧은 코드가 승리합니다.