#include <bits/stdc++.h> using namespace std; char s[200005]; long long out=0; int t[5]; int f(char a) { if(a=='a' or a=='e' or a=='i' or a=='u' or a=='y' or a=='o') return 1; return 2; } int main() { scanf("%s",s); long long n=strlen(s); t[f(s[0])]++; t[f(s[1])]++; long long prev=-1; for(long long i=2;n>i;i++) { t[f(s[i])]++; if(t[1]==3 or t[2]==3) { out+=(1LL*i-2-prev)*(n-i); prev=i-2; } t[f(s[i-2])]--; } cout<<out; return 0; }
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 | #include <bits/stdc++.h> using namespace std; char s[200005]; long long out=0; int t[5]; int f(char a) { if(a=='a' or a=='e' or a=='i' or a=='u' or a=='y' or a=='o') return 1; return 2; } int main() { scanf("%s",s); long long n=strlen(s); t[f(s[0])]++; t[f(s[1])]++; long long prev=-1; for(long long i=2;n>i;i++) { t[f(s[i])]++; if(t[1]==3 or t[2]==3) { out+=(1LL*i-2-prev)*(n-i); prev=i-2; } t[f(s[i-2])]--; } cout<<out; return 0; } |