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
#include <bits/stdc++.h>
using namespace std;
vector <int> czy; // czy ostatnie 3 znaki sa tego samego typu
bool typ(char &c){
    return (c == 'a' || c == 'i' || c == 'o' || c == 'u' || c == 'y' || c == 'e');
}
bool CzyOK(char a, char b, char c){
    return (typ(a) == typ(b) && typ(a) == typ(c));
}
string s;
int n;





int main(){
    cin >> s;
    
    n = s.size();
    czy.resize(n+2);
    for (int i = 0; i <= n-3; i++){
        czy[i] = CzyOK(s[i], s[i+1], s[i+2]);
    }
    
    int ost = n;
    for (int i = n-1; i>=0; i--){
        // cout << i << " i " << ost << " ost\n";
        if (czy[i] == 1){
            ost = i;
            czy[i] = i;
        }
        czy[i] = ost;
    }
    long long wynik = 0;
    for (int i = 0; i <= n-3; i++){
        wynik += max((n - czy[i] - 2), 0);
    }
    cout << wynik << "\n";  

}