만드는 중입니다

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

배트맨 리턴즈

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

요약
높이 배열과 여러 구간 질의가 주어지면, 각 구간에서 h_p < h_q이고 q - p가 최대인 쌍 p, q를 찾습니다. 없으면 -1 -1을 출력합니다.
난이도

어려움10점 중 8점

유형
분할 정복, 배열, 누적 합
정답자
아직 제출이 없습니다

문제

고담 시는 하나의 거리로 이루어져 있고, 그 거리를 따라 nn개의 고층 빌딩이 늘어서 있다. 빌딩은 서쪽에서 동쪽으로 11번부터 nn번까지 번호가 매겨져 있으며, ii번째 빌딩의 높이는 hih_i미터이다.

매일 밤 배트맨은 도시 상공을 비행한다. 그는 한 빌딩의 옥상에 올라 다른 빌딩의 옥상으로 활강한다. 강한 바람이 늘 불고 있어서 그는 서쪽으로만 날 수 있고, 고도는 거의 변하지 않는다. 따라서 p<qp < q이고 hp<hqh_p < h_q일 때에만 빌딩 qq에서 빌딩 pp로 활강할 수 있다. 배트맨은 매우 기동성이 좋아서 pp와 qq 사이에 있는 빌딩의 높이는 신경 쓰지 않는다. 배트맨은 도시의 범죄 수준을 중요하게 여기므로, 유효한 쌍 pp, qq 가운데 q−pq - p가 가장 큰 쌍을 고른다.

시 당국은 mm개의 재개발 계획을 세웠다. ii번째 계획에서는 lil_i번부터 rir_i번까지의 빌딩만 남고 나머지는 모두 철거된다. 각 계획 ii에 대해 li≤pi<qi≤ril_i \le p_i < q_i \le r_i, hpi<hqih_{p_i} < h_{q_i}를 만족하면서 qi−piq_i - p_i가 최대가 되는 pip_i, qiq_i를 구하라.

입력

첫째 줄에 빌딩의 수 nn (1≤n≤200 0001 \le n \le 200\,000)이 주어진다. 둘째 줄에는 빌딩의 높이 hih_i (1≤hi≤200 0001 \le h_i \le 200\,000)가 nn개 주어진다. 셋째 줄에는 계획의 수 mm (1≤m≤200 0001 \le m \le 200\,000)이 주어진다. 이어지는 mm개의 줄에는 각각 두 정수 lil_i, rir_i (1≤li<ri≤n1 \le l_i < r_i \le n)가 주어지며, 이는 ii번째 계획에서 남는 빌딩의 범위이다.

출력

각 계획마다 최적의 쌍 pip_i, qiq_i를 두 정수로 출력한다. 유효한 비행이 하나도 없으면 −1-1 −1-1을 출력한다. 최적해가 여러 개라면 그중 아무것이나 출력해도 된다.

힌트

첫 번째 샘플을 보자. 첫 번째 질의에서 쓸 수 있는 빌딩은 높이 3과 1인 두 개뿐인데, 3≥13 \ge 1이므로 유효하지 않다. 두 번째 질의에서는 1번 빌딩과 2번 빌딩의 쌍이 유효하며, 두 빌딩의 높이는 각각 2와 3이다.

두 번째 샘플을 보자. 첫 번째 질의에서 높이 2와 3인 쌍과 높이 2와 4인 쌍이 모두 유효하다. 앞의 쌍이 거리가 더 멀므로 이 질의의 답이 된다.

예제2

  1. 예제 1

    입력
    4
    2 3 1 4
    2
    2 3
    1 3
    
    예상 출력
    -1 -1
    1 2
    
  2. 예제 2

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