#include <iostream> #include <string> using namespace std; int main () { string str; cin >> str; int dl=str.size(); char T[200002]; int m=1; int l=1; int i=0; int S[200002]; int t=0; for (int j=0; j<dl; j++) { if (str[j]=='a' || str[j]=='e' || str[j]=='i' || str[j]=='o' || str[j]=='u' || str[j]=='y') { str[j]='a'; } else { str[j]='b'; } if (j!=0) { if (str[j-1]!=str[j]) { if (l>=3) { S[t]=l; t++; m=1; } else m++; l=1; } else { m++; l++; if (l==3) { S[t]=m-3; t++; } } } //cout << j<< " " << t << " " << l << " " << m << endl; } if (l>2) { S[t]=l; t++; S[t]=0; } else { S[t]=m; } t++; /*for (int j=0; j<t; j++) { cout << S[j] << " "; }*/ //cout << str << endl; long long wynik=(1+dl)*dl/2; if (t==1) cout << 0; else { for (int tt=1; tt<t; tt=tt+2) { wynik=(wynik-(2*S[tt]-7)); } for (int tt=2; tt<t-1; tt=tt+2) { wynik=(wynik-((S[tt]+5)*(S[tt]+4)/2)); } wynik=(wynik-((S[0]+3)*(S[0]+2)/2)); wynik=(wynik-((S[t-1]+3)*(S[t-1]+2)/2)); cout << wynik; } 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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | #include <iostream> #include <string> using namespace std; int main () { string str; cin >> str; int dl=str.size(); char T[200002]; int m=1; int l=1; int i=0; int S[200002]; int t=0; for (int j=0; j<dl; j++) { if (str[j]=='a' || str[j]=='e' || str[j]=='i' || str[j]=='o' || str[j]=='u' || str[j]=='y') { str[j]='a'; } else { str[j]='b'; } if (j!=0) { if (str[j-1]!=str[j]) { if (l>=3) { S[t]=l; t++; m=1; } else m++; l=1; } else { m++; l++; if (l==3) { S[t]=m-3; t++; } } } //cout << j<< " " << t << " " << l << " " << m << endl; } if (l>2) { S[t]=l; t++; S[t]=0; } else { S[t]=m; } t++; /*for (int j=0; j<t; j++) { cout << S[j] << " "; }*/ //cout << str << endl; long long wynik=(1+dl)*dl/2; if (t==1) cout << 0; else { for (int tt=1; tt<t; tt=tt+2) { wynik=(wynik-(2*S[tt]-7)); } for (int tt=2; tt<t-1; tt=tt+2) { wynik=(wynik-((S[tt]+5)*(S[tt]+4)/2)); } wynik=(wynik-((S[0]+3)*(S[0]+2)/2)); wynik=(wynik-((S[t-1]+3)*(S[t-1]+2)/2)); cout << wynik; } return 0; } |