litere

Time limit: 1s Memory limit: 2MB Input: litere.in Output: litere.out

Algorel a primit un joc care conține nn jetoane pe care sunt scrise litere mari ale alfabetului. Fiecare literă are asociat un cod format dintr-o singură cifră nenulă. Jetoanele se așează în ordinea dată inițial, iar prin citirea literelor de pe acestea, de la primul la ultimul jeton, se formează un cuvânt. Dacă se citesc numerele de pe fiecare jeton, începând de la primul la ultimul, se obține un număr k1k_1. Jocul continuă la fel, dar se așează jetoanele începând de la al doilea la ultimul, obținându-se un nou număr k2k_2. Apoi, se așează jetoanele începând de la al treilea la ultimul, obținându-se un nou număr k3k_3, ș.a.m.d. până se ajunge la așezarea doar a ultimului jeton, caz în care se obține numărul knk_n.

Cerință

Scrieți un program care citește numărul nn de jetoane, cele nn litere asociate jetoanelor, precum și codurile asociate literelor, în ordinea apariției lor și afișează:

  • numărul de perechi de litere consecutive din cuvântul inițial care au proprietatea că o literă este vocală și cealaltă este consoană (ordinea lor nu contează);
  • numărul k1k_1, format din așezarea inițială a jetoanelor;
  • suma k1+k2++knk_1 + k_2 + \dots + k_n.

Date de intrare

Fișierul de intrare litere.in va conține pe prima linie valoarea lui nn, reprezentând numărul de jetoane, pe a doua linie un cuvânt format din nn litere mari (de la A la Z); literele sunt scrise una după alta, fără să fie separate cu spații, astfel încât prima literă este cea aflată pe primul jeton, a doua literă pe al doilea jeton ș.a.m.d. Pe a treia linie din fișier se află un număr mm ce reprezintă numărul de litere distincte, iar pe a patra linie mm valori reprezentând codurile literelor distincte ce apar în cuvânt. Codurile sunt date în ordinea apariției literelor în cuvânt și sunt numere naturale nenule formate dintr-o singură cifră, separate printr-un spațiu, pentru fiecare literă codul fiind dat o singură dată, chiar dacă litera se repetă.

Date de ieșire

Fișierul de ieșire litere.out va conține pe prima linie numărul de perechi de litere consecutive din cuvânt care au proprietatea că o literă este vocală și cealaltă consoană (ordinea lor nu contează), pe a doua linie numărul k1k_1, (format din așezarea inițială a jetoanelor), iar pe a treia linie suma k1+k2++knk_1 + k_2 + \dots + k_n.

Restricții și precizări

  • 0<n10 0000 < n \leq 10 \ 000;
  • 0<m<270 < m < 27;
  • Se acordă punctaje parțiale astfel:
    • 2020% pentru afișarea valorii corecte pe prima linie din fișierul rezultat (cerința 11);
    • 4040% pentru afișarea valorii corecte pe a doua linie din fișierul rezultat (cerința 22);
    • 4040% pentru afișarea valorii corecte pe a treia linie din fișierul rezultat (cerința 33).

Exemplul 1

litere.in

3
CSC
2
1 2

litere.out

0
121
143

Explicație

Nu există perechi de litere consecutive care să îndeplinească cerința.
Sunt 22 litere distincte: C și S. cod(cod(C)=1) = 1, cod(cod(S)=2) = 2.
k1=121k_1 = 121k2=21k_2 = 21k3=1k_3 = 1‚ iar k1+k2+k3=121+21+1=143k_1 + k_2 + k_3 = 121 + 21 + 1 = 143.

Exemplul 2

litere.in

6
CABABE
4
2 5 6 7

litere.out

5
256567
320342

Explicație

Există 55 perechi de litere consecutive care să îndeplinească cerința: CA, AB, BA, AB și BE.
Sunt 44 litere distincte: C, A, B și E. cod(cod(C)=2) = 2, cod(cod(A)=5) = 5, cod(cod(B)=6) = 6, cod(cod(E)=7) = 7. k1=256567k_1 = 256567k2=56567k_2 = 56567k3=6567k_3 = 6567k4=567k_4 = 567, k5=67k_5 = 67, k6=7k_6 = 7, iar k1+k2+k3+k4+k5+k6=256567+56567+6567+567+67+7=320342k_1 + k_2 + k_3 + k_4 + k_5 + k_6 = 256567 + 56567 + 6567 + 567 + 67 + 7 = 320342.

Log in or sign up to be able to send submissions!