[BOJ 34711] 경숲길 재개발 1
View as PDF
Submit solution
Points:
3
Time limit:
1.0s
Memory limit:
1G
Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text
서강대학교 인근 산책로인 경의선 숲길, 약칭 '경숲길'에는 $N$개의 건물이 일렬로 늘어선 도로가 있다. 하지만 이곳에 큰 문제가 발견되어 경숲길은 재개발에 착수했다.</p>
경숲길에는 건물 옥상을 애용하는 사람이 많아 옥상은 항상 여가를 즐기는 사람들로 가득 찼다. 하지만 이곳에는 높이가 같은 건물이 너무 많아 다른 건물 옥상의 사람과 눈이 마주쳐 서로 어색해지는 상황이 빈번하게 일어났다!
이러한 불상사가 일어나지 않도록, 기존 건물을 모두 철거하고 다음과 같은 특별한 규칙에 따라 건물을 재설계하기로 했다.
경숲길에 세워진 $N$개의 건물은 모두 양의 정수 높이 $H_i$를 가지며, 높이가 같은 두 건물 사이에는 반드시 그들보다 높이가 더 높은 건물이 존재해야 한다. 다시 말해, $H_i = H_j$ 를 만족하는 모든 $i,j (i<j)$에 대해, $i<k<j$ 이면서 $H_k > H_i$를 만족하는 $k$가 적어도 하나 존재해야 한다.
다만 예산 문제도 있기에 건물을 너무 높게 지을 수는 없다. 따라서 모든 건물의 높이 총합은 최소가 되도록 해야 한다.
규칙에 맞도록 경숲길을 설계했을 때, 건물 높이 총합의 최솟값을 구해보자.
입력 형식
첫째 줄에 건물의 수 $N$이 주어진다. $(1 \leq N \leq 10^{12})$
출력 형식
첫째 줄에 건물 높이 총합의 최솟값을 출력한다.
예제 입력 1
4
예제 출력 1
7
예제 입력 2
7
예제 출력 2
11
Comments