#include<iostream> #include<string> #include<cstdio> using namespace std; int tab[200005]; int main() { ios::sync_with_stdio(0); cin.tie(0); string s; cin>>s; int n=s.size(); long long wynik=0; wynik+=n*(n+1)/2; int licznik=0; int zera=0; int jedynki=0; int ile=0; for(int i=0;i<n;i++) { char a=s[i]; if(a=='a'||a=='i'||a=='o'||a=='e'||a=='u'||a=='y') tab[i]=0; else tab[i]=1; //cout<<a<<": "<<tab[i]; if(zera>=2&&!tab[i]) { zera++; wynik-=licznik*(licznik+1)/2; licznik=0; } else if(jedynki>=2&&tab[i]) { jedynki++; wynik-=licznik*(licznik+1)/2; licznik=0; } else if(zera>2&&tab[i]) { wynik-=(zera+zera-1); licznik=3; zera=0; jedynki=1; ile++; } else if(jedynki>2&&!tab[i]) { wynik-=(jedynki+jedynki-1); licznik=3; jedynki=0; zera=1; ile++; } else if(tab[i]) { zera=0; jedynki++; licznik++; } else { jedynki=0; zera++; licznik++; } //cout<<wynik<<endl; } if(!licznik) { wynik-=3; ile++; if(zera) wynik-=(zera+zera-1); else wynik-=(jedynki+jedynki-1); } // cout<<"licznik: "<<licznik<<endl; wynik-=licznik*(licznik+1)/2; //cout<<wynik<<endl; wynik+=6*ile; cout<<wynik<<endl; }
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 77 78 79 80 81 82 83 84 85 86 | #include<iostream> #include<string> #include<cstdio> using namespace std; int tab[200005]; int main() { ios::sync_with_stdio(0); cin.tie(0); string s; cin>>s; int n=s.size(); long long wynik=0; wynik+=n*(n+1)/2; int licznik=0; int zera=0; int jedynki=0; int ile=0; for(int i=0;i<n;i++) { char a=s[i]; if(a=='a'||a=='i'||a=='o'||a=='e'||a=='u'||a=='y') tab[i]=0; else tab[i]=1; //cout<<a<<": "<<tab[i]; if(zera>=2&&!tab[i]) { zera++; wynik-=licznik*(licznik+1)/2; licznik=0; } else if(jedynki>=2&&tab[i]) { jedynki++; wynik-=licznik*(licznik+1)/2; licznik=0; } else if(zera>2&&tab[i]) { wynik-=(zera+zera-1); licznik=3; zera=0; jedynki=1; ile++; } else if(jedynki>2&&!tab[i]) { wynik-=(jedynki+jedynki-1); licznik=3; jedynki=0; zera=1; ile++; } else if(tab[i]) { zera=0; jedynki++; licznik++; } else { jedynki=0; zera++; licznik++; } //cout<<wynik<<endl; } if(!licznik) { wynik-=3; ile++; if(zera) wynik-=(zera+zera-1); else wynik-=(jedynki+jedynki-1); } // cout<<"licznik: "<<licznik<<endl; wynik-=licznik*(licznik+1)/2; //cout<<wynik<<endl; wynik+=6*ile; cout<<wynik<<endl; } |