#include <iostream> #include <string> const int MAX_SIZE = 200000; const int vowels[26] = { true,//A false,//B false,//C false,//D true,//E false,//F false,//G false,//H true,//I false,//J false,//K false,//L false,//M false,//N true,//O false,//P false,//Q false,//R false,//S false,//T true,//U false,//V false,//W false,//X true,//Y false,//Z }; bool isTriplet(int i, const std::string& text) { if ((vowels[text[i] - 'a'] && vowels[text[i + 1] - 'a'] && vowels[text[i + 2] - 'a']) || (!vowels[text[i] - 'a'] && !vowels[text[i + 1] - 'a'] && !vowels[text[i + 2] - 'a'])) { return true; } return false; } int main() { std::ios::sync_with_stdio(false); std::string input; input.reserve(MAX_SIZE); std::cin >> input; long long result = 0; int inputSize = input.size(); int proceed = 0; for (int i = 0; i < inputSize - 2; i++) { if (isTriplet(i, input)) { result += (i - proceed + 1)*(inputSize - i - 2); proceed = i + 1; } } std::cout << result; }
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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | #include <iostream> #include <string> const int MAX_SIZE = 200000; const int vowels[26] = { true,//A false,//B false,//C false,//D true,//E false,//F false,//G false,//H true,//I false,//J false,//K false,//L false,//M false,//N true,//O false,//P false,//Q false,//R false,//S false,//T true,//U false,//V false,//W false,//X true,//Y false,//Z }; bool isTriplet(int i, const std::string& text) { if ((vowels[text[i] - 'a'] && vowels[text[i + 1] - 'a'] && vowels[text[i + 2] - 'a']) || (!vowels[text[i] - 'a'] && !vowels[text[i + 1] - 'a'] && !vowels[text[i + 2] - 'a'])) { return true; } return false; } int main() { std::ios::sync_with_stdio(false); std::string input; input.reserve(MAX_SIZE); std::cin >> input; long long result = 0; int inputSize = input.size(); int proceed = 0; for (int i = 0; i < inputSize - 2; i++) { if (isTriplet(i, input)) { result += (i - proceed + 1)*(inputSize - i - 2); proceed = i + 1; } } std::cout << result; } |