#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()); } |
English