#include <iostream> using namespace std; char samogloski[6] = {'a', 'e', 'i', 'o', 'u', 'y'}; long long dp[2], bez[2], kon; bool nie(char a, char b, char c){ int wynik=0; for(char d : samogloski){ if(d==a){ wynik++; } if(d==b){ wynik++; } if(d==c){ wynik++; } } return (wynik==0||wynik==3); } int main() {ios_base::sync_with_stdio(0); cin.tie(0); string slowo; cin>>slowo; int t, w; for(int i = 0; i<slowo.size(); i++){ t = i%2; w = (i+1)%2; dp[t] = dp[w]+kon; if(i>=2&&nie(slowo[i], slowo[i-1], slowo[i-2])){ dp[t]+=bez[w]-1; bez[t]=2; kon+=bez[w]-1; // cout<<slowo[i-2]<<slowo[i-1]<<slowo[i]<<" pojebalo"<<endl; } else{ bez[t] = bez[w]+1; } } cout<<dp[t]; 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 | #include <iostream> using namespace std; char samogloski[6] = {'a', 'e', 'i', 'o', 'u', 'y'}; long long dp[2], bez[2], kon; bool nie(char a, char b, char c){ int wynik=0; for(char d : samogloski){ if(d==a){ wynik++; } if(d==b){ wynik++; } if(d==c){ wynik++; } } return (wynik==0||wynik==3); } int main() {ios_base::sync_with_stdio(0); cin.tie(0); string slowo; cin>>slowo; int t, w; for(int i = 0; i<slowo.size(); i++){ t = i%2; w = (i+1)%2; dp[t] = dp[w]+kon; if(i>=2&&nie(slowo[i], slowo[i-1], slowo[i-2])){ dp[t]+=bez[w]-1; bez[t]=2; kon+=bez[w]-1; // cout<<slowo[i-2]<<slowo[i-1]<<slowo[i]<<" pojebalo"<<endl; } else{ bez[t] = bez[w]+1; } } cout<<dp[t]; return 0; } |