#include <stdio.h> #include <string> #include <vector> #include <iostream> typedef long long int llint; std::string s; bool is_samo(int i) { char c=s[i]; return c=='a'|| c=='e'|| c=='i'|| c=='o'|| c=='u'|| c=='y'; } bool is_difficult(int i) { bool b0=is_samo(i); bool b1=is_samo(i+1); bool b2=is_samo(i+2); return b0==b1&&b1==b2; } int main() { std::cin>>s; int len=(int)s.size(); if(len<3){std::cout<<0;return 0;} llint res=0; llint ret=0; for(int i=len-3;i>=0;--i) ret+=(res=is_difficult(i)?(len-i-2):res); std::cout<<ret; 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 | #include <stdio.h> #include <string> #include <vector> #include <iostream> typedef long long int llint; std::string s; bool is_samo(int i) { char c=s[i]; return c=='a'|| c=='e'|| c=='i'|| c=='o'|| c=='u'|| c=='y'; } bool is_difficult(int i) { bool b0=is_samo(i); bool b1=is_samo(i+1); bool b2=is_samo(i+2); return b0==b1&&b1==b2; } int main() { std::cin>>s; int len=(int)s.size(); if(len<3){std::cout<<0;return 0;} llint res=0; llint ret=0; for(int i=len-3;i>=0;--i) ret+=(res=is_difficult(i)?(len-i-2):res); std::cout<<ret; return 0; } |