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