ConcursC++17

biom

biom sn[1]sn^{[1]} [At: DN3DN^3 / Pl: ~uri / E: it bioma] (Blg) Complex ecologic ce se formează în raport cu un anumit mediu ambiant.

Steve Stonecutter se află într-o lume formată din cuburi, iar fiecare cub aparține unui singur biom. Cuburile sunt dispuse într-o linie și sunt numerotate de la 11 la NN. Se consideră că blocurile ii și i+1i + 1 sunt vecine între ele pentru toate valorile ii de la 11 la N−1N − 1.

Putem reprezenta această lume ca și un șir de caractere SS de lungime NN format din litere mici ale alfabetului limbii engleze, numerotat de la 11 la NN, unde al ii-lea caracter reprezintă biomul din care face parte al ii-lea cub.

Pentru a se deplasa, Steve poate face următoarele mișcări:

  • se poate deplasa cu costul AA de la cubul ii la vecinul său imediat la dreapta, adică i+1i + 1;
  • se poate deplasa cu costul BB de la cubul ii la vecinul său imediat la stânga, adică i−1i − 1;
  • se poate deplasa cu costul CC de la cubul ii la cubul jj minim pentru care j>ij \gt i și Si=SjS_i = S_j;
  • se poate deplasa cu costul DD de la cubul ii la cubul jj maxim pentru care j<ij \lt i și Si=SjS_i = S_j.


Aceste mișcări se pot realiza dacă și numai dacă poziția în care Steve vrea să se deplaseze există. De exemplu, dacă Steve se află pe cubul 11, acesta nu poate face a doua sau a patra mișcare.

Începând de la cubul 11, Steve dorește să ajungă la cubul NN cu cost minim, așa că vă roagă pe voi să aflați care este acest cost.

Date de intrare

Pe prima linie se găsește un singur număr NN, reprezentând numărul de cuburi din lumea în care se află Steve.

Pe a doua linie se află patru numere AA, BB, CC și DD reprezentând costurile fiecărei operații pe care o poate face Steve.

Pe a treia linie se află șirul de caractere SS de lungime NN ce reprezintă harta biomurilor lumii.

Date de ieșire

Pe o singură linie se va afla un singur număr ce reprezintă costul minim de a ajunge de la cubul 11 la cubul NN.

Restricții

  • 1≤N≤1 000 0001 \leq N \leq 1\ 000\ 000.
  • 0≤A,B,C,D≤1 000 000 0000 \leq A, B, C, D \leq 1\ 000\ 000\ 000.
#PunctajRestricții
112N≤10N \leq 10
28Pentru orice i<j<ki \lt j \lt k, dacă Si=SkS_i = S_k atunci Si=SjS_i = S_j
311B=D=1 000 000 000B = D = 1\ 000\ 000\ 000, iar A,C≤1 000A, C \leq 1\ 000
419A=1A = 1, iar fiecare dintre BB, CC și DD poate să fie 11 sau 1 000 000 0001\ 000\ 000\ 000
510A≤1A \leq 1, iar fiecare dintre BB, CC și DD poate să fie 00, 11 sau 1 000 000 0001\ 000\ 000\ 000
611N≤500N \leq 500
78N≤100 000N \leq 100\ 000
821fără restricții suplimentare

Exemple

biom.in

6
3 5 4 2
abccbc

biom.out

10

Steve se poate mișca cu o poziție la dreapta cu cost 33. De la cubul 22, acesta se poate deplasa spre cubul 55 cu cost 44. La sfârșit, acesta se deplasează din nou cu o poziție la dreapta pentru a ajunge la destinație, cubul 66. Costul total va fi 3+4+3=103 + 4 + 3 = 10.

biom.in

15
1 2 3 4
abccabcbacbabcb

biom.out

11

Steve se poate deplasa de la cubul 11 la cubul 55, iar pe urmă la cubul 99, ambele deplasări având fiecare costul 33. Pe urmă, de la cubul 99 se poate deplasa la cubul 1010 cu cost 11. De la cubul 1010, se poate deplasa la cubul 1414 cu cost 33, ca în final să ajungă la destinație, în cubul 1515, cu cost 11. Costul total de deplasare va fi 3+3+1+3+1=113 + 3 + 1 + 3 + 1 = 11.

Sursă și autori

ONI 2023, clasele 11, 12. Matei Tinca.

Enunț din Kilonova, sub licența CC-BY-NC-SA-4.0, conform politicii sursei. Adaptări de prezentare și tipografie. Exemplele, formulele și figurile originale sunt păstrate.

RÂNDUL TĂU

Trimite o soluție

Editor de cod

Setul original de teste și regulile de punctare sunt în curs de verificare. Trimiterea pentru evaluare va fi disponibilă după această verificare.

Se verifică autentificarea…

Un pas, apoi următorul.Înapoi sus ↑