만드는 중입니다

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

다리

면접 대비

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

요약
각 질의 L, R마다 양 끝 높이의 내림 평균 M을 구하고, 구간 안의 산별 비용을 합산합니다.
난이도

보통10점 중 5점

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

문제

건축가 Marijonas는 산이 일직선으로 늘어선 지역의 교통을 개선하려고 한다. 이 지역은 크기가 NN인 배열 AA로 표현되며, kk번째 산의 높이는 A[k]A[k]이다.

Marijonas는 두 산 사이에 다리를 놓으려고 한다. 어느 두 산 사이에 놓을지는 아직 정하지 않았지만, LiL_i번째 산과 RiR_i번째 산 사이에 다리를 놓을 때의 건설 비용을 알고 싶어 한다.

건설 비용은 다음과 같이 계산한다.

  • 다리의 높이 MiM_i는 양 끝 산 높이의 평균을 내림한 값이다. Mi=⌊A[Li]+A[Ri]2⌋M_i = \left\lfloor \frac{A[L_i] + A[R_i]}{2} \right\rfloor
  • 다리는 Li≤ki≤RiL_i \le k_i \le R_i를 만족하는 모든 산 kik_i 위를 지난다.
  • 산의 높이 A[ki]A[k_i]가 MiM_i 이하이면 받침대를 세워야 하며, 이때 비용은 Mi−A[ki]M_i - A[k_i]이다.
  • 산의 높이 A[ki]A[k_i]가 MiM_i보다 크면 터널을 파야 하며, 이때 비용은 11이다.

Marijonas는 다리 하나의 비용은 쉽게 계산할 수 있지만, QQ쌍의 산 각각에 대한 비용을 알고 싶어 한다. 각 질의에 대한 다리 건설 비용을 구하라.

입력

첫째 줄에 배열의 크기 NN이 주어진다. 둘째 줄에는 공백으로 구분된 정수 A[1],A[2],…,A[N]A[1], A[2], \dots, A[N]이 주어진다. 셋째 줄에는 질의의 수 QQ가 주어진다. 이후 QQ개의 줄에 공백으로 구분된 두 정수 LiL_i와 RiR_i가 한 줄에 하나씩 주어진다.

출력

QQ개의 줄에 걸쳐 각 질의의 답을 입력 순서대로 한 줄에 하나씩 출력한다. 각 답은 LiL_i번째 산과 RiR_i번째 산 사이에 다리를 놓을 때의 건설 비용이다.

제한

  • 1≤N,Q≤100 0001 \le N, Q \le 100\,000
  • 1≤Li≤Ri≤N1 \le L_i \le R_i \le N (1≤i≤Q1 \le i \le Q)
  • 1≤A[i]≤10 0001 \le A[i] \le 10\,000 (1≤i≤N1 \le i \le N)

예제1

  1. 예제 1

    입력
    4
    1 2 4 2
    2
    1 3
    1 4
    
    예상 출력
    2
    3