#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; } |