#include<bits/stdc++.h>
using namespace std;
int tab[200009];
int tab2[200009];
char sam[6]= {'a', 'e', 'i', 'o', 'u', 'y'};
bool nal(char c){
for(int i=0;i<6;++i)if(c==sam[i])return 1;
return 0;
}
int main(){
ios_base::sync_with_stdio(0);
string s;cin>>s;
int lsa=0;
int lsp=0;
for(int i=0; i<s.size(); ++i){
if(nal(s[i])){
++lsa;
lsp=0;
}
else{
lsa=0;
++lsp;
}
if(lsa>=3 || lsp>=3){
tab[i]=1;
}
}
int lpos=s.size();
for(int i=s.size()-1;i>=0;--i){
if(tab[i]==1)lpos=i;
tab2[i]=lpos;
}
long long wyn=0;
for(int i=0;i<(int)s.size()-2;++i){
wyn+=s.size()-tab2[i+2];
}
cout<<wyn<<endl;
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | #include<bits/stdc++.h> using namespace std; int tab[200009]; int tab2[200009]; char sam[6]= {'a', 'e', 'i', 'o', 'u', 'y'}; bool nal(char c){ for(int i=0;i<6;++i)if(c==sam[i])return 1; return 0; } int main(){ ios_base::sync_with_stdio(0); string s;cin>>s; int lsa=0; int lsp=0; for(int i=0; i<s.size(); ++i){ if(nal(s[i])){ ++lsa; lsp=0; } else{ lsa=0; ++lsp; } if(lsa>=3 || lsp>=3){ tab[i]=1; } } int lpos=s.size(); for(int i=s.size()-1;i>=0;--i){ if(tab[i]==1)lpos=i; tab2[i]=lpos; } long long wyn=0; for(int i=0;i<(int)s.size()-2;++i){ wyn+=s.size()-tab2[i+2]; } cout<<wyn<<endl; return 0; } |
English