정육면체를 사랑하는 사람

단위 정육면체 K개(최대 10^18)를 담을 때 겉넓이 2(xy+yz+zx)가 최소가 되는 양의 정수 상자 크기 x, y, z를 구하고, 같은 겉넓이면 사전순으로 가장 앞선 세 쌍을 출력한다.

보통7수학정수론완전 탐색이분 탐색면접 대비아직 제출이 없습니다시간 제한0.5초메모리 제한512 MB

문제

지학이는 정육면체를 사랑한다. 정육면체 없이는 하루도 살지 못해서 집 안에 산더미처럼 쌓아 두고 매일 바라보며 지낸다.

정육면체가 계속 늘어나 집이 엉망이 되자 화가 난 석환이가 최후통첩을 보냈다. 늘어놓은 정육면체를 당장 정리하지 않으면 집에서 내쫓겠다는 것이다.

지학이는 가로, 세로, 높이가 모두 1cm인 정육면체 KK개를 직육면체 상자 하나에 전부 담아 정리해야 한다. 까다로운 석환이가 붙인 조건은 이렇다. 정육면체의 각 면은 상자의 면과 평행해야 하고, 정육면체끼리 맞닿아도 되지만 서로 겹치거나 상자 밖으로 튀어나오게 놓을 수는 없다. 어떻게 쌓고 배열하느냐에 따라 필요한 상자의 크기가 달라진다.

마지막 자비심이 남은 석환이는 상자를 직접 사다 주겠다고 했다. 대신 자기 돈이 나가는 만큼 값이 가장 싼 상자여야 한다. 값이 최소가 아니면 석환이는 상자를 사러 가지 않고, 지학이는 집에서 쫓겨난다. 상자 값은 직육면체의 겉넓이에 비례하므로, 겉넓이가 가장 작은 상자의 크기를 알아내 석환이에게 알려주어야 한다.

상자의 가로, 세로, 높이는 모두 cm 단위의 양의 정수다. 가로가 xx, 세로가 yy, 높이가 zz인 상자의 겉넓이는 2(xy+yz+zx)2(xy + yz + zx)이고, 이 상자에는 정육면체를 최대 xyzxyz개까지 담을 수 있다.

지학이가 집에서 쫓겨나지 않도록 겉넓이가 최소인 상자의 크기를 구하자.

입력

첫째 줄에 정육면체의 개수 KK가 주어진다. (1K10181 \le K \le 10^{18})

출력

첫째 줄에 겉넓이가 최소인 상자의 가로, 세로, 높이를 cm 단위로 공백으로 구분해 출력한다. 겉넓이가 최소인 상자가 여럿이면 (가로, 세로, 높이) 순서쌍이 사전순으로 가장 앞서는 것을 출력한다.