#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; } |
English