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
49
50
51
#include <bits/stdc++.h>

#define forn(i, n) for(int i = 0; i < n; ++i)

using namespace std;

typedef long long ll;
typedef pair<int, int> pint;


string s;
int nast[200042];

bool samogloska(int i)
{
    return (s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u' || s[i] == 'y');
}

bool check(int i)
{
    return (samogloska(i) && samogloska(i+1) && samogloska(i+2)) || (!samogloska(i) && !samogloska(i+1) && !samogloska(i+2));
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    cin >> s;
    vector<int> pozycje = {-1};
    int i=0;
    while (i < s.size())
    {
        int j = i;
        while (j < s.size()-2 && !check(j))
            j++;
        while (i <= j)
        {
            nast[i] = j;
            i++;
        }
    }

    ll bad = s.size()*(s.size() + 1LL) / 2LL;
    for (int i=0; i<s.size()-1; i++)
        bad -= (nast[i] - i + 2);

    bad--;
    cout << bad; 
    
    return 0;
}