#include"bits/stdc++.h" using namespace std; string sl; long long odp; int licz; int pocz,kon; int samo(char x); int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>sl; kon=sl.size(); if(sl.size()>=3){ licz+=samo(sl[0])+samo(sl[1])+samo(sl[2]); if(licz%3==0){ odp+=kon-2; pocz=1; } for(int g=3;g<sl.size();g++){ licz-=samo(sl[g-3]); licz+=samo(sl[g]); if(licz%3==0){ odp+=(kon-g)*(g-pocz-1); pocz=g-1; } } } cout<<odp; } int samo(char x) { if(x=='a' or x=='e' or x=='y' or x=='i' or x=='o' or x=='u') return 1; else return -1; }
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 | #include"bits/stdc++.h" using namespace std; string sl; long long odp; int licz; int pocz,kon; int samo(char x); int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>sl; kon=sl.size(); if(sl.size()>=3){ licz+=samo(sl[0])+samo(sl[1])+samo(sl[2]); if(licz%3==0){ odp+=kon-2; pocz=1; } for(int g=3;g<sl.size();g++){ licz-=samo(sl[g-3]); licz+=samo(sl[g]); if(licz%3==0){ odp+=(kon-g)*(g-pocz-1); pocz=g-1; } } } cout<<odp; } int samo(char x) { if(x=='a' or x=='e' or x=='y' or x=='i' or x=='o' or x=='u') return 1; else return -1; } |