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
#include <stdio.h>
unsigned long long int s;

int main() {
  char c;
  unsigned long long int i = 0 //aktualna pozycj
  ,g = 0; //ostatnia koncowa pozycja trojki
  int j = 0; //ilosc wystapien trudnego znaku + samogloski - spolgloski
  while((c = getchar())!=EOF) {
    if(c==10) continue;
    i++;
    switch(c) {
      case 'a':
      case 'e':
      case 'i':
      case 'o':
      case 'u':
      case 'y':
        if(j<0) j=0;
        j++;
        break;
      default:
        if(j>0) j=0;
        j--;
    }
    if(j==3 || j==-3) {
      s += (i-2);
      if(j==3) j--;
      else j++;
      if(g>0)
      s += (i-g-1)*(g-2);
      g = i;
    }
  }
  if(g && g!=i) {
    s += (g-2)*(i-g);
  }
  printf("%llu\n", s);
  return 0;
}