[BOJ 6116] 케이크

View as PDF

Submit solution

Points: 5
Time limit: 1.0s
Memory limit: 128M

Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text

나코더 회원들은 재민이의 생일을 축하하기 위해, 열심히 생일 케이크를 만들고 있다.

케이크를 만들기 위해서 현재 길이 Wi, 높이 1인 빵조각이 1 ~ N 순서대로 만들어지고 있다. 나코더 회원들은 이 빵조각들을 모두 쌓아서 (버리면 안 된다) 층층이 케이크를 만들고자 한다.

케이크는 여러 층으로 구성될 수 있는데, 한 층의 길이는 그 층에 있는 빵조각의 길이의 합이며, 위에 있는 층의 길이가 아래에 있는 층의 길이보다 클 수 없다. (그러면, 케익이 무너지고 말 것이다!)

또한, 나중에 만들어진 빵조각은 전에 만들어진 빵조각보다 낮은 층에 올라갈 수 없다.

이를 만족하는 선에서 최대한의 높이로 케익을 쌓고자 할때, 과연 몇층까지 쌓을 수 있을까?

입력 형식

첫 번째 줄에 N이 주어진다. (1 <= N <= 100000)

이후 N개의 줄에 Wi가 주어진다 (1 <= Wi <= 10000)

출력 형식

가장 높은 케이크의 크기를 출력하라.

예제 입력

3
1
2
3

예제 출력

2

힌트

다음과 같은 구성이 가능하다.

 +----------+
 |    3     | 
 +---+------+ 
 | 1 |   2  | 
 +---+------+

Comments

There are no comments at the moment.