아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

직사각형이 아니라 정사각형

면접 대비

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

요약
너비가 1인 막대들의 높이가 주어질 때, 히스토그램 안에 들어가는 가장 큰 정사각형의 한 변의 길이를 구한다.
난이도

보통10점 중 6점

유형
스택, 배열, 이분 탐색, 그리디
정답자
아직 제출이 없습니다

문제

히스토그램은 공통 밑변을 가지는 NN개의 인접한 직사각형을 나란히 붙여 만든 다각형이다. 각 직사각형을 막대라고 부른다. 왼쪽에서 ii번째 막대의 너비는 1이고 높이는 H_iH\_i이다.

주어진 히스토그램에 완전히 포함되면서 한 변이 밑변과 평행한 가장 큰 직사각형의 넓이를 구하려고 한다.

그림 1. 예제의 히스토그램. 오른쪽에는 가장 큰 직사각형이 표시되어 있다.

사실은 직사각형이 아니라 가장 큰 정사각형을 구해야 한다. 정사각형의 넓이는 한 변의 길이로 정해지므로, 넓이 대신 한 변의 길이를 출력한다.

그림 2. 예제의 히스토그램. 오른쪽에는 가장 큰 정사각형이 표시되어 있다.

입력

첫째 줄에 정수 NN이 주어진다. 1≤N≤300 0001 \le N \le 300\,000.

둘째 줄에 NN개의 정수 H_1,H_2,⋯ ,H_NH\_1, H\_2, \cdots, H\_N이 공백으로 구분되어 주어진다. H_iH\_i (1≤H_i≤109)(1 \le H\_i \le 10^9)는 ii번째 막대의 높이이다.

출력

히스토그램에 완전히 포함되면서 한 변이 밑변과 평행한 가장 큰 정사각형의 한 변의 길이를 출력한다.

예제1

  1. 예제 1

    입력
    6
    3 4 4 4 4 3
    
    예상 출력
    4