경숲길 재개발 1

시간 제한1초메모리 제한1024 MB

요약
높이가 같은 두 건물 사이에 더 높은 건물이 있어야 한다는 규칙을 지키면서 N개의 건물 높이 합의 최솟값을 구한다. N은 10^12까지 주어진다.
난이도

보통10점 중 7점

유형
동적 계획법, 수학, 그리디, 조합론
정답자
아직 제출이 없습니다

문제

서강대학교 인근 산책로인 경의선 숲길, 약칭 '경숲길'에는 NN개의 건물이 일렬로 늘어선 도로가 있다. 하지만 이곳에 큰 문제가 발견되어 경숲길은 재개발에 착수했다.

경숲길에는 건물 옥상을 애용하는 사람이 많아 옥상은 항상 여가를 즐기는 사람들로 가득 찼다. 하지만 이곳에는 높이가 같은 건물이 너무 많아 다른 건물 옥상의 사람과 눈이 마주쳐 서로 어색해지는 상황이 빈번하게 일어났다!

이러한 불상사가 일어나지 않도록, 기존 건물을 모두 철거하고 다음과 같은 특별한 규칙에 따라 건물을 재설계하기로 했다.

경숲길에 세워진 NN개의 건물은 모두 양의 정수 높이 H_iH\_i를 가지며, 높이가 같은 두 건물 사이에는 반드시 그들보다 높이가 더 높은 건물이 존재해야 한다. 다시 말해, H_i=H_jH\_i = H\_j 를 만족하는 모든 i,j(i\<j)i,j (i\<j)에 대해, i\<k\<ji\<k\<j 이면서 H_k>H_iH\_k > H\_i를 만족하는 kk가 적어도 하나 존재해야 한다.

다만 예산 문제도 있기에 건물을 너무 높게 지을 수는 없다. 따라서 모든 건물의 높이 총합은 최소가 되도록 해야 한다.

규칙에 맞도록 경숲길을 설계했을 때, 건물 높이 총합의 최솟값을 구해보자.

입력

첫째 줄에 건물의 수 NN이 주어진다. (1≤N≤1012)(1 \leq N \leq 10^{12})

출력

첫째 줄에 건물 높이 총합의 최솟값을 출력한다.

예제2

  1. 예제 1

    입력
    4
    
    예상 출력
    7
    
  2. 예제 2

    입력
    7
    
    예상 출력
    11