1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <map>
#include <vector>
#include <string>
#include <string.h>

using namespace std;

inline bool is_vowel(char c){
    return c=='a' || c=='e' || c=='i' || c=='o' || c=='u' || c=='y';
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    // oczyt danych wejściowych
    char input[200002];
    cin.getline(input, sizeof(input));

    /** Licznik kolejnych samogłosek >0 lub spółgłosek <0 */
    int res=0;

    int p=0;

    int64_t sum=0;


    for(int i=0;input[i]!='\0';++i) {
        if(is_vowel(input[i])) {
            if(res<0) res=0;    // jeżeli wcześniej były spółgłoski, to zerujemy
            ++res;              // zliczamy tą
        } else {
            if(res>0) res=0;    // jeżeli wcześniej były samogłoski, to zerujemy
            --res;              // zliczamy tą
        }
        if(res>=3 || res<=-3) { // jeżeli są trzy lub więcej spółgłoski lub samogłoski pod rząd, to liczymy możliwości
            p=i-1;
        }
        sum+=p;
    }

//    cout<<strlen(input)<<endl;
    cout<<sum<<endl;


    return 0;
}