#include<bits/stdc++.h> #define lim 1000009 using namespace std; int n,k; char s[lim]; vector<int> v; int main() { scanf("%s", s); n = strlen(s); for(int i = 0;i<n;++i) { if((s[i]=='a')||(s[i]=='e')||(s[i]=='i')||(s[i]=='o')||(s[i]=='u')||(s[i]=='y')) { s[i] = 1; } else { s[i] = 0; } } v.push_back(0); for(int i = 1;i<n-1;++i) { if((s[i-1]==s[i])&&(s[i]==s[i+1])) { v.push_back(i); } } v.push_back(n-1); long long w = 1; for(int i = 1;i<v.size();++i) { w += (long long)(v[i]-v[i-1]+2)*(v[i]-v[i-1]+1)/2-1; } printf("%lld\n", (long long)(n+1)*n/2-w); }
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 | #include<bits/stdc++.h> #define lim 1000009 using namespace std; int n,k; char s[lim]; vector<int> v; int main() { scanf("%s", s); n = strlen(s); for(int i = 0;i<n;++i) { if((s[i]=='a')||(s[i]=='e')||(s[i]=='i')||(s[i]=='o')||(s[i]=='u')||(s[i]=='y')) { s[i] = 1; } else { s[i] = 0; } } v.push_back(0); for(int i = 1;i<n-1;++i) { if((s[i-1]==s[i])&&(s[i]==s[i+1])) { v.push_back(i); } } v.push_back(n-1); long long w = 1; for(int i = 1;i<v.size();++i) { w += (long long)(v[i]-v[i-1]+2)*(v[i]-v[i-1]+1)/2-1; } printf("%lld\n", (long long)(n+1)*n/2-w); } |