#include <bits/stdc++.h> using namespace std; const int N = 2*1e5; int wystampienia[N+7]; int wyn[N+7]; string slowo; int sam,spl; int n; int licznik,pom; int main() { cin>>slowo; n = slowo.length(); for(int i =0;i<n;i++) { if(slowo[i] == 'a' or slowo[i] =='e' or slowo[i] =='i' or slowo[i] =='o' or slowo[i] =='u' or slowo[i] =='y') { sam++; spl=0; if(sam>=3) { wystampienia[i+1] = 1; } } else { sam = 0; spl++; if(spl>=3) { wystampienia[i+1] = 1; } } } if(wystampienia[3]!=1) { licznik = 1; if (wystampienia[4]!=1) { licznik=2; } } for(int i =3;i<=n;i++) { wyn[i] = wyn[i-1]; if(wystampienia[i] == 1) { wyn[i] += licznik+1; if(wystampienia[i-1]==1) { if(wystampienia[i-2]==1) { wyn[i]+=wyn[i-3]; } else { wyn[i] +=wyn[i-2]; } } else { wyn[i]+=wyn[i-1]; } licznik++; } else { if(wystampienia[i+1]==0 and wystampienia[i+2]==0) { licznik++; wyn[i] +=wyn[i-1]; } } if(wystampienia[i]==1 and wystampienia[i+1]==0 and wystampienia[i+2]==0) { licznik=0; } } cout<<wyn[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 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 | #include <bits/stdc++.h> using namespace std; const int N = 2*1e5; int wystampienia[N+7]; int wyn[N+7]; string slowo; int sam,spl; int n; int licznik,pom; int main() { cin>>slowo; n = slowo.length(); for(int i =0;i<n;i++) { if(slowo[i] == 'a' or slowo[i] =='e' or slowo[i] =='i' or slowo[i] =='o' or slowo[i] =='u' or slowo[i] =='y') { sam++; spl=0; if(sam>=3) { wystampienia[i+1] = 1; } } else { sam = 0; spl++; if(spl>=3) { wystampienia[i+1] = 1; } } } if(wystampienia[3]!=1) { licznik = 1; if (wystampienia[4]!=1) { licznik=2; } } for(int i =3;i<=n;i++) { wyn[i] = wyn[i-1]; if(wystampienia[i] == 1) { wyn[i] += licznik+1; if(wystampienia[i-1]==1) { if(wystampienia[i-2]==1) { wyn[i]+=wyn[i-3]; } else { wyn[i] +=wyn[i-2]; } } else { wyn[i]+=wyn[i-1]; } licznik++; } else { if(wystampienia[i+1]==0 and wystampienia[i+2]==0) { licznik++; wyn[i] +=wyn[i-1]; } } if(wystampienia[i]==1 and wystampienia[i+1]==0 and wystampienia[i+2]==0) { licznik=0; } } cout<<wyn[n]; return 0; } |