Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2025

2020-2022 2023 2024

Problem description


Magiczny Dywan
(B)
Limit pamięci: 256 MB
Limit czasu: 2.00 s

W królestwie Bajtii wznosi się pasmo majestatycznych gór. Składa się ono z N szczytów, ponumerowanych od 1 do N z zachodu na wschód. Szczyt o numerze i ma wysokość Hi metrów.

Młody czarodziej Bajtazar testuje swój nowo utkany artefakt – Magiczny Dywan. Artefakt ten pozwala mu przemieszczać się w powietrzu, zużywając magiczną energię (manę). W każdej sekundzie lotu Bajtazar wykonuje dwie akcje jednocześnie:

  1. Ruch w poziomie: Bajtazar wybiera jedną z trzech opcji:
    • Przemieszcza się na pozycję sąsiedniego wschodniego szczytu, zmieniając pozycję poziomą z i na i + 1.
    • Przemieszcza się na pozycję sąsiedniego zachodniego szczytu, zmieniając pozycję poziomą z i na i − 1.
    • Zatrzymuje się w miejscu (nie zmienia pozycji w poziomie).
  2. Zmiana wysokości: Równolegle z ruchem poziomym, dywan zmienia swoją wysokość:
    • Wzniesienie się o jeden metr (kosztuje 4 jednostki many).
    • Opadnięcie o jeden metr (kosztuje 1 jednostkę many – dywan wspomaga się grawitacją).
    • Utrzymanie wysokości (kosztuje 2 jednostki many, by przeciwstawić się ciążeniu).

Oczywiście, Bajtazar musi unikać zderzenia ze skałami – w każdym momencie, gdy znajduje się nad szczytem i, jego wysokość musi wynosić co najmniej Hi.

Wielki Mag Bajtii zlecił Bajtazarowi dostarczenie Q ważnych zwojów. Podczas j-tej misji Bajtazar startuje dokładnie ze szczytu góry Sj i musi wylądować idealnie na szczycie góry Tj. Ponieważ regeneracja many trwa bardzo długo, Bajtazar chce zużyć jej jak najmniej. Pomóż mu obliczyć minimalną ilość many wymaganą dla każdej z misji!

Wejście

W pierwszym wierszu wejścia znajduje się jedna liczba całkowita N, oznaczająca liczbę górskich szczytów.
W drugim wierszu znajduje się N liczb całkowitych H1, H2, …, HN oddzielonych pojedynczymi odstępami, oznaczających wysokości kolejnych szczytów w metrach. W trzecim wierszu wejścia znajduje się jedna liczba całkowita Q, oznaczająca liczbę zapytań. W kolejnych Q wierszach znajdują się opisy poszczególnych misji. W j-tym z tych wierszy podane są dwie liczby całkowite Sj oraz Tj, oznaczające odpowiednio numer szczytu startowego i docelowego.

Wyjście

Twój program powinien wypisać na standardowe wyjście dokładnie Q wierszy. W j-tym wierszu powinna znaleźć się jedna liczba całkowita – minimalna liczba jednostek many niezbędna do wykonania lotu ze szczytu Sj na szczyt Tj.

Ograniczenia

2 ≤ N, Q ≤ 200 000, 1 ≤ Hi ≤ 109, 1 ≤ Sj, Tj ≤ N

Ocenianie

Podzadanie Warunki Punkty
1 Sj + 1 = Tj 5
2 Hi = i 6
3 N, Q, Hi ≤ 100 18
4 N, Q ≤ 1 000 24
5 Sj = 1 20
6 brak dodatkowych ograniczeń 27

Przykład

Wejście Wyjście Wyjaśnienie
4
9 1 8 2
2
1 3
4 2
3
31

Lot z pierwszym zwojem: Start z góry 1 (wysokość 9). Przelot nad górę 2 ze spadkiem o jeden metr (koszt: 1). Przelot nad górę 3 z utrzymaniem wysokości (koszt: 2).

Łącznie: 1 + 2 = 3 jednostki many.

Lot z drugim zwojem: Start z góry 4 (wysokość 2). Wzniesienie w miejscu o pięć metrów (koszt: 5 ⋅ 4 = 20). Przelot nad górę 3 ze wzniesieniem o jeden metr (koszt: 4). Przelot nad górę 2 ze spadkiem o jeden metr (koszt: 1). Opadnięcie w miejscu o sześć metrów (koszt: 6 ⋅ 1 = 6).

Łącznie: 20 + 4 + 1 + 6 = 31 jednostek many.

Lot ze zwojem nr 1 i 2: Lot 1 Lot 2

Wejście Wyjście
9
1 2 3 2 1 2 3 2 1
4
1 9
4 6
2 6
5 2
18
4
9
9
Wejście Wyjście
5
1 2 3 4 5
3
1 3
3 1
2 5
8
2
12