피자 (Large)

높이 N인 탑을 높이 1인 탑으로 나누면서 각 분할마다 두 조각의 곱만큼 점수를 얻을 때, 얻을 수 있는 최대 총점을 구한다.

보통4그리디수학동적 계획법조합론면접 대비아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

< 그림: Designed by Kstudio / Freepik >

갑은 학과 개강총회를 준비하면서 피자를 NN 판 시켰다. 식탁 위에는 피자 NN 판이 탑 하나로 쌓여 있고, 갑은 이 높이 NN짜리 피자탑을 높이가 1인 피자탑 NN 개로 모두 분리해야 한다. 지루한 일이라 갑은 혼자 놀기를 하며 해치우기로 했다.

놀이 규칙은 이렇다. 갑은 식탁 위의 피자탑 중 하나를 고른 다음, 그 탑을 두 개의 피자탑으로 분리한다. 고른 피자탑의 높이가 AA이고 이를 높이 BB인 탑과 높이 CC인 탑으로 나눴다면, 갑은 이때 B×CB \times C 만큼 즐거움을 느낀다. BBCC는 모두 1 이상이다. 높이가 1인 피자탑은 더 분리하지 않는다. 식탁 위에 분리할 수 있는 피자탑이 하나도 남지 않으면 놀이가 끝난다.

피자판의 수 NN이 주어질 때, 갑이 얻을 수 있는 즐거움 총합의 최댓값을 구하여라.

< 높이가 8인 피자탑을 높이가 4인 피자탑 둘로 분리하는 과정 >

입력

첫째 줄에 피자판의 개수를 뜻하는 양의 정수 NN이 주어진다. (1N1091 \le N \le 10^9)

출력

갑이 얻을 수 있는 즐거움 총합의 최댓값을 한 줄에 출력한다.

힌트

NN이 1이면 처음부터 분리할 수 있는 피자탑이 없으므로 즐거움은 0이다.

NN이 3인 경우를 보자. 괄호 하나가 피자탑 하나를 뜻하고, 괄호 안의 수는 그 탑의 높이다. 처음에 식탁 위에는 (3) 하나가 있다. 갑이 (3)을 (1)과 (2)로 나누면 1×2=21 \times 2 = 2 만큼 즐거워한다. 이어서 (2)를 (1)과 (1)로 나누면 1×1=11 \times 1 = 1 만큼 즐거워한다. 이제 남은 탑은 모두 높이가 1이라 놀이가 끝나고, 갑이 얻은 즐거움은 2+1=32 + 1 = 3이다.

NN10910^9까지 커질 수 있으므로 답은 32비트 정수 범위를 넘는다.