#include <iostream>
using namespace std;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(NULL);
string a;
getline(cin, a);
int n = a.length(), combo = 0, suma = 0,l,r;
char znak;
for(int i = 0;i <= n;i++){
if(a[i] == 'a' || a[i] == 'e' || a[i] == 'i' || a[i] == 'o' || a[i] == 'u' || a[i] == 'y')
a[i] = 'a';
else
a[i] = 'b';
if(a[n-1] == 'a')
a[n] = 'b';
else
a[n] = 'a';
if(i == 0 && i < n)
znak = a[i];
if(a[i] == znak)
combo++;
else if(combo >= 3 && a[i] != znak){
suma += (combo*combo - (3*combo) + 2)/2;
l = i - combo;
r = n - i;
suma += l * r;
suma += (l+r)*(combo-2);
//cout << i << ' ' << l << ' ' << r << '\n';
znak = a[i];
combo = 1;
}
else
combo = 1;
znak = a[i];
}
cout << suma;
}
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 | #include <iostream> using namespace std; int main(){ ios_base::sync_with_stdio(0); cin.tie(NULL); string a; getline(cin, a); int n = a.length(), combo = 0, suma = 0,l,r; char znak; for(int i = 0;i <= n;i++){ if(a[i] == 'a' || a[i] == 'e' || a[i] == 'i' || a[i] == 'o' || a[i] == 'u' || a[i] == 'y') a[i] = 'a'; else a[i] = 'b'; if(a[n-1] == 'a') a[n] = 'b'; else a[n] = 'a'; if(i == 0 && i < n) znak = a[i]; if(a[i] == znak) combo++; else if(combo >= 3 && a[i] != znak){ suma += (combo*combo - (3*combo) + 2)/2; l = i - combo; r = n - i; suma += l * r; suma += (l+r)*(combo-2); //cout << i << ' ' << l << ' ' << r << '\n'; znak = a[i]; combo = 1; } else combo = 1; znak = a[i]; } cout << suma; } |
English