Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2025
Problem description
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:
- 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).
- 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 |
|
|
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: |
| Wejście | Wyjście | |
|
|
| Wejście | Wyjście | |
|
|