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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <set>
#include <list>
#include <cmath>
#include <queue>
#include <climits>
#include <stack>
#define FOR(i,p,k) for(int i = (p);i<(k);i++)
typedef long long int LL;
using namespace std;

string s;
set<char> samogloski;


void dane() {
	samogloski.insert('a');
	samogloski.insert('o');
	samogloski.insert('i');
	samogloski.insert('u');
	samogloski.insert('y');
	samogloski.insert('e');
	
    cin>>s;
    LL count = 0;
    LL left = -1;
    LL right = s.length()-1;
    
    int acc = 1;
    bool samogloska = samogloski.count(s[0]) > 0 ? true : false;
    
    bool first = true;
    
    for(int i = 1; i < s.length(); i++) {
    	right--;
    	//bierzemy nowa literke
    	if(samogloski.count(s[i]) > 0) {
    		//mamy samogloske
    		if(samogloska) {
    			acc++;
    		} else {
    			acc = 1;
    			samogloska = true;
    		}
    	} else {
    		if(!samogloska) {
    			acc++;
    		} else {
    			acc = 1;
    			samogloska = false;
    		}
    	}
    	//cout<<"ACC : "<<acc<<" "<<samogloski.count(s[i])<< " " <<samogloska<<endl;
    	
    	//TODO: pamietaj o przypadku AAA (acc--)
    	if(acc == 3) {
    		//jesli mam match!
    		acc--;
    		count += (left+1) * (right+1);
    		//cout<<"MAMY : "<<left<<" "<<right<<" " <<i<<endl;
    		left = 0;
    	} else {
    		left++;
    	}
    }
   
	
	cout<<count<<endl;
}

int main() {
    ios_base::sync_with_stdio(false);
    dane();
    return 0;
}