Ak nevieš programovať, nezúfaj! Môžeš sa to naučiť a ešte za to získať body, ktoré sa ti budú počítať namiesto tejto úlohy.
Stačí, že pôjdeš na stránku Programátorskej Liahne (liahen.ksp.sk). Keď budeš riešiť sadu loops_cpp, bodmi, ktoré získaš, si môžeš nahradiť riešenie tejto úlohy. Stačí ak na spodku tejto stránky odovzdáš pdf-ko s prezývkou, ktorú používaš na Liahni.
Ak máte akékoľvek otázky ohľadom tejto úlohy, napíšte Adamovi na [email protected]
Bratia Artur a Boris medzi sebou radi súťažia a tak tomu bolo aj teraz. Keď Artur čítal knihu, všimol si zaujímavé slovo a prehlásil, že určite obsahuje viac častí1 takých, že začínajú spoluhláskou. Boris mu hneď neveril a potreboval si túto domnienku overiť, lebo podľa neho bolo viac častí začínajúcich samohláskou. Keďže bratov zaujíma aj o koľko častí kto v tejto súťaži vyhral, potrebujú nájsť presný počet častí slova začínajúcich samohláskou a aj častí začínajúcich spoluhláskou. Keďže nechcú hľadať všetky takéto časti slova len za pomoci papiera, potrebujú vašu pomoc, aby im to šikovne zrátal program.
Úloha
Vašou úlohou je napísať program, ktorý na vstupe načíta slovo dĺžky práve \(n\) a na jeho základe vypočíta výsledné body súrodencov. Slovo môže obsahovať len malé a veľké písmená 26 písmennej anglickej abecedy.
Formát vstupu
Na prvom riadku sa nachádza jedno číslo \(n\) (platí \(1 \leq n \leq 10^6\)), dĺžka slova. Na nasledujúcom riadku je reťazec dĺžky \(n\) z písmen anglickej abecedy. Môže obsahovať malé aj veľké písmená.
Formát výstupu
Na jediný riadok výstupu vypíšte počet substringov (súvislých podúsekov slova) začínajúcich samohláskou a počet substringov začínajúcich spoluhláskou oddelené medzerou.
Hodnotenie
Je 5 sád vstupov. Platia v nich nasledujúce obmedzenia:
Číslo sady | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
\(1 \leq n \leq\) | \(500\) | \(1000\) | \(100\,000\) | \(750\,000\) | \(10^6\) |
Výsledky v posledných sadách môžu byť veľmi veľké čísla. Chcete preto použiť 64 bitové premenné (napr. long long v C++, Int64 v Pascale), lebo do obyčajnej 32 bitovej premennej sa nemusia zmestiť. Ak programujete v pythone, nemusíte sa tým zaoberať, on to vyrieši za vás.
Príklad
Input:
5
prask
Output:
3 12
*Substringy zašínajúce samohláskou sú len 3 a to ask
, as
, a
. Spoluhláskou začína 12 substringov a to p
, r
, s
, k
, prask
, pras
, pra
, rask
, ras
, ra
, pr
a sk
.
Input:
15
aekeocjekolskrj
Output:
66 54
Časť slova, nazývaná aj substring, predstavuje akýkoľvek interval dĺžky od \(1\) po \(n\) nachádzajúci sa v slove (stringu).↩︎
Odovzdávanie
Na odovzdávanie sa musíš prihlásiť
Otázky a diskusia
Po skončení kola budete mať príležitosť na diskutovanie o riešeniach v diskusii pod vzorovým riešením.