#include <iostream> #include<string.h> using namespace std; int f(char *s,int size) { int consonants=0; int vowels=0; long diff=0; long long result=0; long left=0; bool first=false; while(*s!='\0') { diff++; if(*s=='a'||*s=='e'||*s=='i'||*s=='o'||*s=='u'||*s=='y') { vowels++; consonants=0; } else { vowels=0; consonants++; } if((consonants==3||vowels==3) && first==true) { result+=((diff-3)*((size-3)-(left-2)))+(diff-3)+((size-3)-(left-2))+1; diff=2; } else if(consonants>3||vowels>3) { result+=1+(size-(left+1)); diff=2; } else if(consonants==3||vowels==3 && first==false) { result+=result+((left-2)*((size-3)-(left-2)))+(left-2)+((size-3)-(left-2))+1; diff=2; first=true; } left++; s++; } return result; } int main() { string str; cin>>str; char tab[str.length()]; strcpy(tab, str.c_str()); char *ptr=tab; cout<<f(ptr,str.length()); }
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 50 51 52 53 54 55 56 57 58 59 60 | #include <iostream> #include<string.h> using namespace std; int f(char *s,int size) { int consonants=0; int vowels=0; long diff=0; long long result=0; long left=0; bool first=false; while(*s!='\0') { diff++; if(*s=='a'||*s=='e'||*s=='i'||*s=='o'||*s=='u'||*s=='y') { vowels++; consonants=0; } else { vowels=0; consonants++; } if((consonants==3||vowels==3) && first==true) { result+=((diff-3)*((size-3)-(left-2)))+(diff-3)+((size-3)-(left-2))+1; diff=2; } else if(consonants>3||vowels>3) { result+=1+(size-(left+1)); diff=2; } else if(consonants==3||vowels==3 && first==false) { result+=result+((left-2)*((size-3)-(left-2)))+(left-2)+((size-3)-(left-2))+1; diff=2; first=true; } left++; s++; } return result; } int main() { string str; cin>>str; char tab[str.length()]; strcpy(tab, str.c_str()); char *ptr=tab; cout<<f(ptr,str.length()); } |