#include<bits/stdc++.h> using namespace std; string s; unsigned int n; int p, d1, d2; vector<char> vowels={ 'a', 'e', 'i', 'o', 'u', 'y' }; long long result; bool check( char x ) { for( auto l:vowels ) if( x==l ) return true; return false; } void solve( ) { for( int i=0; i<n; i++ ) { if( check(s[i]) ) { d1++; d2=0; } else { d1=0; d2++; } // cout<<i<<": sprawdzam "<<s[i]<<" dlugosc sam = "<<d1<<" dlugosc spo = "<<d2<<"\n"; if( d1==3 or d2==3 ) { // cout<<"na poz "<<i<<" konczy sie 3 \n"; // cout<<"res += "<<((i-2)-p+1)*(n-i)<<" bo zacz sie w "<<i-2<<" a kon w "<<i<<"\n"; long long v=((i-2)-p+1)*(n-i); //cout<<"zwiekszam o "<<v<<"\n"; result+=v; p=i-1; if( d1==3 ) d1=2; else d2=2; } } } int main( ) { cin>>s; n=s.size(); solve(); cout<<result<<"\n"; 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 | #include<bits/stdc++.h> using namespace std; string s; unsigned int n; int p, d1, d2; vector<char> vowels={ 'a', 'e', 'i', 'o', 'u', 'y' }; long long result; bool check( char x ) { for( auto l:vowels ) if( x==l ) return true; return false; } void solve( ) { for( int i=0; i<n; i++ ) { if( check(s[i]) ) { d1++; d2=0; } else { d1=0; d2++; } // cout<<i<<": sprawdzam "<<s[i]<<" dlugosc sam = "<<d1<<" dlugosc spo = "<<d2<<"\n"; if( d1==3 or d2==3 ) { // cout<<"na poz "<<i<<" konczy sie 3 \n"; // cout<<"res += "<<((i-2)-p+1)*(n-i)<<" bo zacz sie w "<<i-2<<" a kon w "<<i<<"\n"; long long v=((i-2)-p+1)*(n-i); //cout<<"zwiekszam o "<<v<<"\n"; result+=v; p=i-1; if( d1==3 ) d1=2; else d2=2; } } } int main( ) { cin>>s; n=s.size(); solve(); cout<<result<<"\n"; return 0; } |