폴록의 추측

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

$n$번째 삼각수(triangular number)는 $1$부터 $n$까지의 양의 정수를 모두 더한 값이다. $n$번째 사면체수(tetrahedral number)는 처음 $n$개의 삼각수를 모두 더한 값이며, $\frac{n(n+1)(n+2)}{6}$과 같다. 예를 들어 5번째 사면체수는 $1+(1+2)+(1+2+3)+(1+2+3+4)+(1+2+3+4+5)=\frac{5\cdot 6\cdot 7}{6}=35$이다.

  • 처음 5개의 삼각수: $1, 3, 6, 10, 15$
  • 처음 5개의 사면체수: $1, 4, 10, 20, 35$

1850년, 전문 수학자가 아니라 영국의 법률가이자 정치가였던 프레더릭 폴록 경(Sir Frederick Pollock)은 모든 양의 정수를 최대 다섯 개의 사면체수의 합으로 나타낼 수 있다고 추측하였다. 이때 같은 사면체수를 여러 번 사용할 수 있으며, 사용한 횟수만큼 각각 개수로 센다. 이 추측은 한 세기 반이 넘도록 아직 증명되지 않았다.

주어진 각 정수에 대해, 그 수를 사면체수들의 합으로 나타낼 때 필요한 사면체수의 최소 개수를 구하는 프로그램을 작성하라. 또한 홀수인 사면체수만 사용할 수 있을 때 필요한 최소 개수도 함께 구하라.

예를 들어 40은 사면체수 2개의 합 $20+20$($20=\frac{4\cdot 5\cdot 6}{6}$)으로 나타낼 수 있지만, 40 자체는 사면체수가 아니다. 홀수 사면체수만 사용하면 40은 $35+1+1+1+1+1$처럼 최소 6개가 필요하다. 따라서 입력이 40이면 프로그램은 2와 6을 출력해야 한다.

입력

입력은 여러 줄로 이루어지며, 각 줄에는 $10^6$보다 작은 양의 정수가 하나씩 주어진다. 입력의 끝은 $0$ 하나만 있는 줄로 표시된다.

출력

각 입력 정수마다 두 정수를 공백 하나로 구분하여 한 줄에 출력한다. 첫 번째 정수는 그 수를 사면체수들의 합으로 나타낼 때 필요한 사면체수의 최소 개수이고, 두 번째 정수는 홀수 사면체수만으로 나타낼 때 필요한 최소 개수이다. 그 외의 문자는 출력하지 않는다.