#include<iostream> using namespace std; long long odp,ost; string s; bool SG(char x) { return(x=='a'||x=='e'||x=='i'||x=='o'||x=='u'||x=='y'); } bool Ost3(long long i) { return (SG(s[i-2])&&SG(s[i-1])&&SG(s[i])) || (!SG(s[i-2])&&!SG(s[i-1])&&!SG(s[i])); } int main() { cin>>s; ost=0; long long dl=s.size(); for(long long i=2; i<dl; i++) { if(Ost3(i)) { odp++; odp+=dl-3-ost; odp+=(i-2-ost)*(dl-i-1); ost=i-1; } } cout<<odp; 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 | #include<iostream> using namespace std; long long odp,ost; string s; bool SG(char x) { return(x=='a'||x=='e'||x=='i'||x=='o'||x=='u'||x=='y'); } bool Ost3(long long i) { return (SG(s[i-2])&&SG(s[i-1])&&SG(s[i])) || (!SG(s[i-2])&&!SG(s[i-1])&&!SG(s[i])); } int main() { cin>>s; ost=0; long long dl=s.size(); for(long long i=2; i<dl; i++) { if(Ost3(i)) { odp++; odp+=dl-3-ost; odp+=(i-2-ost)*(dl-i-1); ost=i-1; } } cout<<odp; return 0; } |