만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

히스토그램에서 가장 큰 직사각형과 쿼리

시간 제한4초메모리 제한512 MB

요약
N개 막대로 된 히스토그램에서 각 질의마다 l번째부터 r번째 막대 안의 너비 w인 직사각형 중 넓이가 가장 큰 것의 높이를 구합니다.
난이도

어려움10점 중 8점

유형
세그먼트 트리, 슬라이딩 윈도우, 배열
정답자
아직 제출이 없습니다

문제

히스토그램은 너비가 1인 직사각형 여러 개가 아래쪽으로 정렬되어 있는 도형이다. 모든 직사각형의 너비는 같지만, 높이는 서로 다를 수 있다. 예를 들어 왼쪽 그림은 높이가 2, 1, 4, 5, 1, 3, 3인 직사각형으로 이루어진 히스토그램이다.

이 히스토그램에서 아래와 같은 쿼리 Q개를 수행한다.

  • l r w: l번째 직사각형부터 r번째 직사각형까지만 있을 때, 너비가 w이면서 넓이가 가장 큰 직사각형의 높이를 출력한다.

입력

첫째 줄에 직사각형의 수 N이 주어진다. 둘째 줄에는 N개의 정수 h1, ..., hN이 주어진다. 이 숫자들은 히스토그램에 있는 직사각형의 높이이며, 왼쪽부터 오른쪽까지 순서대로 주어진다. 모든 직사각형의 너비는 1이다.

셋째 줄에는 쿼리의 수 Q가 주어진다. 넷째 줄부터 Q개의 줄에 쿼리가 주어진다.

제한

  • 1 ≤ N, Q ≤ 100,000
  • 1 ≤ hi ≤ 1,000,000,000
  • 1 ≤ l ≤ r ≤ N
  • 1 ≤ w ≤ r-l+1

예제1

  1. 예제 1

    입력
    7
    2 1 4 5 1 3 3
    8
    3 4 2
    4 7 2
    2 5 1
    2 5 2
    2 5 3
    2 5 4
    1 3 2
    6 7 2
    
    예상 출력
    4
    3
    5
    4
    1
    1
    1
    3