#include <bits/stdc++.h> using namespace std; int c, n; int t[200001]; int o[200001]; long long w; int main() { c=getchar(); while(c<97 || c>122) { c=getchar(); } while(c>=97 && c<=122) { ++n; c-=96; if(c==1 || c==5 || c==9 || c==15 || c==21 || c==25) { t[n]=1; } c=getchar(); } o[n-1]=999999999; for(int i=n-2; i>=1; --i) { if(t[i]==t[i+1] && t[i]==t[i+2]) { o[i]=0; } else { o[i]=o[i+1]+1; } } for(int i=1; i<=n-2; ++i) { w+=max(0, n-i-o[i]-1); } printf("%lld\n", w); 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 | #include <bits/stdc++.h> using namespace std; int c, n; int t[200001]; int o[200001]; long long w; int main() { c=getchar(); while(c<97 || c>122) { c=getchar(); } while(c>=97 && c<=122) { ++n; c-=96; if(c==1 || c==5 || c==9 || c==15 || c==21 || c==25) { t[n]=1; } c=getchar(); } o[n-1]=999999999; for(int i=n-2; i>=1; --i) { if(t[i]==t[i+1] && t[i]==t[i+2]) { o[i]=0; } else { o[i]=o[i+1]+1; } } for(int i=1; i<=n-2; ++i) { w+=max(0, n-i-o[i]-1); } printf("%lld\n", w); return 0; } |