높이 N인 탑을 높이 1인 탑으로 나누면서 각 분할마다 두 조각의 곱만큼 점수를 얻을 때, 얻을 수 있는 최대 총점을 구한다.
보통4그리디수학동적 계획법조합론면접 대비아직 제출이 없습니다시간 제한1초메모리 제한512 MB
< 그림: Designed by Kstudio / Freepik >
갑은 학과 개강총회를 준비하면서 피자를 N 판 시켰다. 식탁 위에는 피자 N 판이 탑 하나로 쌓여 있고, 갑은 이 높이 N짜리 피자탑을 높이가 1인 피자탑 N 개로 모두 분리해야 한다. 지루한 일이라 갑은 혼자 놀기를 하며 해치우기로 했다.
놀이 규칙은 이렇다. 갑은 식탁 위의 피자탑 중 하나를 고른 다음, 그 탑을 두 개의 피자탑으로 분리한다. 고른 피자탑의 높이가 A이고 이를 높이 B인 탑과 높이 C인 탑으로 나눴다면, 갑은 이때 B×C 만큼 즐거움을 느낀다. B와 C는 모두 1 이상이다. 높이가 1인 피자탑은 더 분리하지 않는다. 식탁 위에 분리할 수 있는 피자탑이 하나도 남지 않으면 놀이가 끝난다.
피자판의 수 N이 주어질 때, 갑이 얻을 수 있는 즐거움 총합의 최댓값을 구하여라.

< 높이가 8인 피자탑을 높이가 4인 피자탑 둘로 분리하는 과정 >
첫째 줄에 피자판의 개수를 뜻하는 양의 정수 N이 주어진다. (1≤N≤109)
갑이 얻을 수 있는 즐거움 총합의 최댓값을 한 줄에 출력한다.
N이 1이면 처음부터 분리할 수 있는 피자탑이 없으므로 즐거움은 0이다.
N이 3인 경우를 보자. 괄호 하나가 피자탑 하나를 뜻하고, 괄호 안의 수는 그 탑의 높이다. 처음에 식탁 위에는 (3) 하나가 있다. 갑이 (3)을 (1)과 (2)로 나누면 1×2=2 만큼 즐거워한다. 이어서 (2)를 (1)과 (1)로 나누면 1×1=1 만큼 즐거워한다. 이제 남은 탑은 모두 높이가 1이라 놀이가 끝나고, 갑이 얻은 즐거움은 2+1=3이다.
N이 109까지 커질 수 있으므로 답은 32비트 정수 범위를 넘는다.