#include <iostream> using namespace std; string tab[66667],s; int czy(int n,string f) { for(int i=n-1; i>=0; --i) { if(f==tab[i])return i; } return -1; } int main() { int f=0,licz=0,x,a,b,wyn=0; cin>>s; for(int i=0; i<s.size(); ++i) { if(f==0 && ( s[i]=='a' || s[i]=='e' || s[i]=='i' || s[i]=='o' || s[i]=='u' || s[i]=='y') ) { if(licz<2) { licz++; } else { tab[i-2]=s[i-2]+s[i-1]+s[i]; x=czy(i-2,tab[i-2]); a=i-1; b=s.size()-i; wyn+=a*b; if(x>=0)wyn--; } } else { if(f==1 && s[i]!='a' && s[i]!='e' && s[i]!='i' && s[i]!='o' && s[i]!='u' && s[i]!='y') { if(licz<2) { licz++; } else { tab[i-2]=s[i-2]+s[i-1]+s[i]; x=czy(i-2,tab[i-2]); a=i-1; b=s.size()-i; wyn+=a*b; if(x>=0)wyn--; } } else { if(s[i]=='a' || s[i]=='e' || s[i]=='i' || s[i]=='o' || s[i]=='u' || s[i]=='y') { f=0; licz=1; } else { f=1; licz=1; } } } } cout<<wyn; 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 | #include <iostream> using namespace std; string tab[66667],s; int czy(int n,string f) { for(int i=n-1; i>=0; --i) { if(f==tab[i])return i; } return -1; } int main() { int f=0,licz=0,x,a,b,wyn=0; cin>>s; for(int i=0; i<s.size(); ++i) { if(f==0 && ( s[i]=='a' || s[i]=='e' || s[i]=='i' || s[i]=='o' || s[i]=='u' || s[i]=='y') ) { if(licz<2) { licz++; } else { tab[i-2]=s[i-2]+s[i-1]+s[i]; x=czy(i-2,tab[i-2]); a=i-1; b=s.size()-i; wyn+=a*b; if(x>=0)wyn--; } } else { if(f==1 && s[i]!='a' && s[i]!='e' && s[i]!='i' && s[i]!='o' && s[i]!='u' && s[i]!='y') { if(licz<2) { licz++; } else { tab[i-2]=s[i-2]+s[i-1]+s[i]; x=czy(i-2,tab[i-2]); a=i-1; b=s.size()-i; wyn+=a*b; if(x>=0)wyn--; } } else { if(s[i]=='a' || s[i]=='e' || s[i]=='i' || s[i]=='o' || s[i]=='u' || s[i]=='y') { f=0; licz=1; } else { f=1; licz=1; } } } } cout<<wyn; return 0; } |