지그재그 히스토그램 나누기
시간 제한1초메모리 제한1024 MB
히스토그램을 연속된 구간으로 나누어 각 구간의 최대 직사각형 넓이가 지그재그 수열을 이루게 하고, 구간 수를 최대로 만드는 문제입니다.
문제
너비가 이고 높이가 각각 , , 인 직사각형 개를 순서대로 이어 붙이면 히스토그램이 된다.
이 히스토그램을 밑변에 수직으로 잘라 여러 조각으로 나눈다. 각 조각의 너비는 양의 정수여야 한다. 조각을 순서대로 나열했을 때, 각 조각에 완전히 포함되는 직사각형 중 넓이가 가장 큰 직사각형의 넓이를 차례로 적은 수열이 지그재그가 되어야 한다. 이 조건을 지키면서 조각의 수를 최대로 하려고 한다.
정확히 말하면, 길이가 인 수열 이 지그재그 수열이라는 것은 다음 두 조건 중 하나 이상을 만족한다는 뜻이다.
- 모든 에 대해, 가 짝수이면 이고 가 홀수이면 이다.
- 모든 에 대해, 가 짝수이면 이고 가 홀수이면 이다.
다음 방법으로 히스토그램을 다른 수열로 바꿀 수 있다.
- , 을 만족하는 강증가 수열 을 고른다.
- 그러면 길이가 인 수열 가 만들어진다.
- 각 에 대해 는 번째 직사각형부터 번째 직사각형까지를 순서대로 이어 붙인 히스토그램에서 넓이가 가장 큰 직사각형의 넓이이다.
가능한 모든 수열 에 대해 얻어지는 수열 중 지그재그 수열인 것의 최대 길이를 구한다.
입력
첫째 줄에 양의 정수 이 주어진다. ()
둘째 줄에 공백으로 구분된 양의 정수 , , 이 주어진다. ()
출력
첫째 줄에 문제의 정답을 출력한다.