Žeņaskalni

4
Latvijas Informātikas olimpiādes logo

Uzdevums no 2025. g. LIO atlases kārtas; abām grupām.

Stāsts

Alpīnisti Ferdinands un Izabella ir nolēmuši izstaigāt slavenos Žeņaskalnus. Kartē Žeņaskalnu nogāzes izskatās kā nogriežņi, kuru galapunkti atrodas punktos ar veselām koordinātām un ir vērsti 45∘45^\circ vai 135∘135^\circ pret abscisu asi, turklāt katri divi secīgi nogriežņi ir savstarpēji perpendikulāri. Tas ļauj aprakstīt Žeņaskalnus kā veselu nenegatīvu skaitļu virkni, kas sākas ar 00, kam seko lauzuma punktu (virsotņu un ieleju) augstumu ordinātu virkne. Skaitļu virkne beidzas ar 00.

Piemēram, 1. zīmējumā parādīto kalnu apraksts ir 00, 55, 22, 88, 00.

Kalnu piemērs.
Kalnu piemērs.

Lai būtu interesantāk, Ferdinands un Izabella ir nolēmuši kāpšanu kalnos sākt katrs no sava kalnu grēdas gala un visu laiku pārvietoties tā, lai katrā brīdī atrastos vienādā augstumā virs sākuma līmeņa (abscisu ass kartē). Pēc tam, kad Ferdinands un Izabella ir satikušies, viņi aprēķina kopējo viena alpīnista veikto pārvietojumu līdz satikšanās brīdim (abiem tas ir vienāds). Ja ceļojuma laikā alpīnists secīgi ir atradies punktos ar augstumu virs sākuma līmeņa a1a_1, a2a_2, …\dots, ama_m, tad pārvietojumu aprēķina kā augstumu starpību moduļu summu: ∣a1−a2∣+∣a2−a3∣+⋯+∣am−1−am∣|a_1-a_2|+|a_2-a_3|+\dots+|a_{m-1}-a_m|. Protams, ka alpīnisti vēlas satikties pēc iespējas agrāk - tā, lai pārvietojums būtu mazākais iespējamais.

Aplūkotajā piemērā sākumā Ferdinands atrodas punktā A(0;0)A(0;0), bet Izabella - G(22;0)G(22;0). Tad viņi abi var doties augšup, visu laiku atrodoties vienādā augstumā, līdz Ferdinands sasniedz B(5;5)B(5;5), bet Izabella - E(17;5)E(17;5). Izabella nevar turpināt ceļu augšup, jo Ferdinands nevarēs atrasties tādā pat augstumā. Toties viņi abi var vienlaicīgi doties lejup - Ferdinands uz C(8;2)C(8;2), bet Izabella uz F(20;2)F(20;2). Tagad abi alpīnisti var doties augšup un satikties punktā D(14;8)D(14;8). Katra alpīnista veiktais pārvietojums ir ∣0−5∣+∣5−2∣+∣2−8∣=14|0-5|+|5-2|+|2-8|=14.

Kalnu iziešana.
Kalnu iziešana.

Uzrakstiet datorprogrammu, kas dotam kalnu grēdas aprakstam nosaka viena alpīnista mazāko iespējamo pārvietojumu no kāpšanas sākuma līdz satikšanās brīdim!

Ievaddati

Pirmajā rindā dots kalnus aprakstošo nogriežņu skaits - naturāls skaitlis N(N≤5000)N (N \leq 5000). Otrajā rindā dots N+1N+1 vesels nenegatīvs skaitlis. Pirmais un pēdējais no šiem skaitļiem ir 00. Katram i(1<i≤N)i(1 < i \leq N) ii-tais skaitlis rindā ir ii-tā nogriežņa sākumpunkta (kas vienlaikus ir (i−1)(i-1)-ā nogriežņa beigu punkts) ordinātas vērtība. Zināms, ka punktu ordinātu vērtības nepārsniedz 10910^9.

Starp katriem diviem blakus skaitļiem ievaddatos ir tukšumzīme.

Izvaddati

Izvaddatu vienīgajā rindā jābūt naturālam skaitlim - viena alpīnista veiktajam mazākajam iespējamajam pārvietojumam no sākuma brīža, kad tas atrodas kalnu pakājē, līdz satikšanās ar otru alpīnistu brīdim. Tiek garantēts, ka vienmēr eksistē tāds ceļojums, ka abi alpīnisti satiksies.

Apakšuzdevumi un to vērtēšana

#Apakšuzdevuma aprakstsPunkti
1.

Uzdevuma tekstā dotie divi testi

2
2.

N≤50N \leq 50, neviena ordinātu vērtība nepārsniedz 100100

8
3.

N≤100N \leq 100

20
4.

N≤1000N \leq 1000

40
5.

Bez papildu ierobežojumiem

30
Apakšuzdevumu punktu summa = 100.

Piemēri

Ievaddati

4 0 5 2 8 0 Kopēt kodu

Izvaddati

14 Kopēt kodu

Ievaddati

6 0 100 70 100 0 100 0 Kopēt kodu

Izvaddati

260 Kopēt kodu

1. apakšuzdevuma ievaddati

10 0 39 29 69 8 100 52 69 56 80 0 Kopēt kodu
12 0 9 2 15 6 12 0 7 6 15 1 3 0 Kopēt kodu