Tiltai

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

요약
각 질의 구간에서 양 끝 높이의 평균을 내림한 값을 M으로 두고, M 이하인 봉우리는 M에서 높이를 뺀 값을, 더 높은 봉우리는 1을 더해 비용을 구한다.
난이도

어려움10점 중 8점

유형
이분 탐색, 누적 합, 정렬, 구현
정답자
아직 제출이 없습니다

문제

Architektas Marijonas bando optimizuoti susisiekimą kalnuotoje vietovėje, kurioje kalnai išsidėstę tiesėje.

Jis aprašė vietovę kaip NN dydžio masyvą AA, kurio kk-toji pozicija nusako kk-tojo kalno aukštį.

Dabar jis planuoja pastatyti tiltą tarp dviejų kalnų. Marijonas dar nežino, tarp kurių kalnų jis statys tiltą, bet jam įdomu sužinoti statybų kainą, jei tiltas būtų statomas tarp kalnų L_iL\_i ir R_iR\_i.

Statybų kaina tarp tiltų apskaičiuojama taip:

  • tilto aukščiu Marijonas pasirenka šoninių kalnų aukščių vidurkio sveikąją dalį M_i=⌊A\[L_i]+A\[R_i]2⌋M\_i = \left\lfloor \frac{A\[L\_i] + A\[R\_i]}{2}\right\rfloor;
  • toliau tiltas tiesiamas virš kiekvieno kalno, kurio indeksas k_ik\_i yra L_i≤k_i≤R_iL\_i ≤ k\_i ≤ R\_i;
  • jei kalno aukštis A\[k_i]≤M_iA\[k\_i ] ≤ M\_i, Marijonui reikės pastatyti pastolius. Pastolių statymo kaina yra M_i−A\[k_i]M\_i − A\[k\_i ];
  • jei kalno aukštis A\[k_i]>M_iA\[k\_i ] > M\_i, Marijonui reikės iškasti tunelį. Tunelio kaina yra 11.

Marijonas gali lengvai apskaičiuoti vieno tilto kainą, tačiau jam įdomu rasti kainą tarp QQ kalnų porų. Ar galite padėti Marijonui rasti QQ tiltų statymo kainas?

입력

Pirmoje eilutėje pateiktas kalnų masyvo dydis NN.

Antroje eilutėje pateikti tarpu atskirti sveikieji skaičiai A\[1],A\[2],…,A\[N]A\[1], A\[2], \dots , A\[N].

Trečioje eilutėje pateiktas užklausų skaičius QQ.

Likusiose QQ eilučių pateikta po du tarpu atskirtus sveikuosius skaičius L_iL\_i, R_iR\_i.

출력

Išveskite QQ eilučių, kiekvienoje iš jų pateikdami vieną skaičių: tilto statomo tarp kalnų L_iL\_i ir R_iR\_i kainą (į užklausas atsakoma eilės tvarka).

제한

  • 1≤N,Q≤100,0001 ≤ N, Q ≤ 100\\, 000
  • 1≤L_i≤R_i≤N1 ≤ L\_i ≤ R\_i ≤ N (1≤i≤Q1 ≤ i ≤ Q)
  • 1≤A\[i]≤10,0001 ≤ A\[i] ≤ 10\\, 000 (1≤i≤N1 ≤ i ≤ N)

예제1

  1. 예제 1

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