Diferente pentru problema/expanding intre reviziile #50 si #11

Diferente intre titluri:

Expanding
problema/expanding

Diferente intre continut:

== include(page="template/taskheader" task_id="expanding") ==
!>problema/expanding?poza_expand2.png!
📖 Povestea reformulată în română
În Tărâmul Ooo, Finn şi Jake descoperă un şir magic de pietre strălucitoare aşezate în linie.
Fiecare piatră are o valoare, valori pe care le vom reprezenta cu un şir $a$ de $n$ elemente. **Nu există trei pietre care să aibă aceeaşi valoare**.
Încercând să colecteze toate pietrele, cei doi se vor mişca după următoarele reguli:
 
* Ei pornesc la o poziţie $p$, cu o poţiune de putere $c = a{~p~}$.
 
* La un pas, ei se pot muta doar într-o poziţie adiacentă, dacă aceasta există în şir, aceasta putând fi vizitată sau nu anterior.
 
* O mutare într-o poziţie vizitată anterior este mereu posibilă şi nu are niciun efect.
 
* Pentru a vizita o poziţie nevizitată, trebuie să aibă puterea poţiunii $c$ egală cu valoarea poziţiei în care merg.
 
* Pentru un ban, ei pot schimba puterea poţiunii $c$ la orice valoare pozitivă.
 
* Când ajung într-o poziţie nouă, ei colectează piatra din acea poziţie.
 
Definim $f(p)$ ca fiind numărul minim de bani de care au nevoie cei doi pentru a putea colecta toate cele $n$ pietre, dacă pornesc în poziţia $p$ cu $c = a{~p~}$.
 
Se dau $n$, şirul $a$ de $n$ elemente şi $q$ query-uri; pentru fiecare primiţi o poziţie $p$ şi trebuie să afişaţi $f(p)$.
 
h2. Date de intrare
 
Fişierul de intrare $expanding.in$ conţine pe prima linie numărul $n$, urmat pe a doua linie de şirul $a$.
Pe a treia linie se găseşte $q$, urmat de $q$ linii cu câte un număr, valorile $p$ ale query-urilor.
 
h2. Date de ieşire
 
În fişierul de ieşire $expanding.out$ afişaţi $q$ linii, pe linia $i$ afişând răspunsul de la al $i$-lea query.
 
h2. Restricţii
 
* $1 ≤ n ≤ 1 000 000$
* $1 ≤ a{~i~} ≤ n$
* $1 ≤ q ≤ 1 000 000$
* $1 ≤ p ≤ n$
 
|_. #  |_. Punctaj |_. Restricţii |
| 1 | 8 | $n ≤ 500$ şi $q ≤ 500$ |
| 2 | 9 | $n ≤ 5000$ şi $q ≤ 10$ |
| 3 | 15 | $n ≤ 5000$ şi $q ≤ 5000$ |
| 5 | 27 | $n ≤ 100 000$ şi $q ≤ 10$ |
| 5 | 18 | $n ≤ 100 000$ şi $q ≤ 100 000$ |
| 6 | 23 | $n ≤ 1 000 000$ şi $q ≤ 1 000 000$ |
 
h2. Exemplu
 
table(example). |_. expanding.in |_. expanding.out |
| 8
2 1 3 4 6 3 2 1
8
1
2
3
4
5
6
7
8
| 7
6
6
5
5
6
6
7
|
 
h3. Explicaţie
 
$f(1) = 7$. Un şir de mutări posibil este:
 
|_. Poziţie  |_. Poţiune |_. Cost|
| 1 | 2 | Costul iniţal este 0 |
| 1 | 1 | 1 (am schimbat poţiunea din 2 în 1) |
| 2 | 1 | 1 |
| 2 | 3 | 2 (am schimbat poţiunea din 1 în 3) |
| 3 | 3 | 2 |
| 3 | 4 | 3 (am schimbat poţiunea din 3 în 4) |
| 4 | 4 | 3 |
| 4 | 6 | 4 (am schimbat poţiunea din 4 în 6) |
| 5 | 6 | 4 |
| 5 | 3 | 5 (am schimbat poţiunea din 6 în 3) |
| 6 | 3 | 5 |
| 6 | 2 | 6 (am schimbat poţiunea din 3 în 2) |
| 7 | 2 | 6 |
| 7 | 1 | 7 (am schimbat poţiunea din 2 în 1) |
| 8 | 1 | 7 |
 
 
$f(4) = 5$. Un şir de mutări posibil este:
 
|_. Poziţie  |_. Poţiune |_. Cost|
| 4 | 4 | Costul iniţal 0 |
| 4 | 6 | 1 (am schimbat poţiunea din 4 în 6) |
| 5 | 6 | 1 |
| 5 | 3 | 2 (am schimbat poţiunea din 6 în 3) |
| 6 | 3 | 2 |
| 5 | 3 | 2 (observaţi cum aici am mers la stânga, lucru care este permis deoarece am vizitat deja aceasta pozitie) |
| 4 | 3 | 2 |
| 3 | 3 | 2 |
| 3 | 1 | 3 (am schimbat poţiunea din 3 în 1) |
| 2 | 1 | 3 |
| 2 | 2 | 4 (am schimbat poţiunea din 1 în 2) |
| 1 | 2 | 4 |
| 2 | 2 | 4 |
| 3 | 2 | 4 |
| 4 | 2 | 4 |
| 5 | 2 | 4 |
| 6 | 2 | 4 |
| 7 | 2 | 4 |
| 7 | 1 | 5 (am schimbat poţiunea din 2 în 1) |
| 8 | 1 | 5 |
În Ţinutul Ooo, Finn şi Jake descoperă un şir magic de pietre strălucitoare aşezate în linie.
Fiecare piatră are o valoare (o culoare sau o energie), iar fiecare valoare apare de cel mult două ori în tot şirul.
ake, fiind elastic, poate alege o poziţie iniţială p din şir, şi începe o călătorie de extindere:
 
La început:
Intervalul [l, r] = [p, p] (adică doar piatra de la poziţia p).
Jake ţine în lăbuţă energia curentă c = valoarea pietrei de la p.
 
Reguli magice:
 
Jake poate schimba energia c în orice valoare pozitivă, dar asta costă 1 poţiune magică.
 
Dacă în stânga există o piatră cu energia c, atunci Jake poate sări la ea şi l scade cu 1.
 
Dacă în dreapta există o piatră cu energia c, atunci Jake se întinde până la ea şi r creşte cu 1.
 
Scopul aventurii:
Jake vrea să se întindă până acoperă întregul şir de pietre, adică [l, r] = [1, n].
Costul final f(p) este numărul minim de poţiuni magice (schimbări de energie) pe care Jake trebuie să le folosească pentru a reuşi.
 
✨ Sarcina ta
 
Ţi se dă lungimea şirului n.
 
Apoi urmează n numere pozitive (valorile pietrelor, fiecare apărând cel mult de două ori).
 
După aceea primeşti un număr q, adică numărul de încercări pe care Jake le face.
 
Urmează q poziţii iniţiale p.
 
Pentru fiecare dintre ele, trebuie să spui câte poţiuni magice minime are nevoie Jake ca să se întindă pe tot şirul.
 
Vrei să îţi rescriu şi input-output-ul în stilul poveştii (cu „Jake primeşte un şir de pietre…”, „Jake încearcă din poziţia…”, „Răspunde cu…”) sau păstrăm partea formală (n, array, q, queries) dar doar ambalată în poveste?
== include(page="template/taskfooter" task_id="expanding") ==

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.