#include <iostream> #include <string> using namespace std; int balancedWords(string s) { int result = 0; int const dl = s.length(); int * a = new int[dl]; int * b = new int[dl]; for (int i = 0;i < dl;i++) { if (i > 0) { a[i] = a[i - 1]; b[i] = b[i - 1]; } else { a[i] = 0; b[i] = 0; } char letter = s.at(i); switch (letter) { case 'a': a[i]++; break; case 'b': b[i]++; break; default: break; } } int liczA, liczB, liczC; for (int i = 0;i < dl;i++) { for (int j = i; j < dl; j++) { i == 0 ? liczA = a[j] : liczA = a[j] - a[i - 1]; i == 0 ? liczB = b[j] : liczB = b[j] - b[i - 1]; liczC = j + 1 - i - liczA - liczB; if ((liczA == liczB && liczB==liczC )|| (liczA == 0 && liczB > 1 && liczC == 0) || (liczA > 1 && liczB == 0 && liczC == 0) || (liczA == 0 && liczB == 0 && liczC > 1) || (liczA == liczB && liczC == 0) || (liczA ==0 && liczB == liczC ) || (liczA == liczC && liczB == 0)) { result++; } } } return result + dl; } int main() { string s; cin >> s; cout << balancedWords(s); }
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 | #include <iostream> #include <string> using namespace std; int balancedWords(string s) { int result = 0; int const dl = s.length(); int * a = new int[dl]; int * b = new int[dl]; for (int i = 0;i < dl;i++) { if (i > 0) { a[i] = a[i - 1]; b[i] = b[i - 1]; } else { a[i] = 0; b[i] = 0; } char letter = s.at(i); switch (letter) { case 'a': a[i]++; break; case 'b': b[i]++; break; default: break; } } int liczA, liczB, liczC; for (int i = 0;i < dl;i++) { for (int j = i; j < dl; j++) { i == 0 ? liczA = a[j] : liczA = a[j] - a[i - 1]; i == 0 ? liczB = b[j] : liczB = b[j] - b[i - 1]; liczC = j + 1 - i - liczA - liczB; if ((liczA == liczB && liczB==liczC )|| (liczA == 0 && liczB > 1 && liczC == 0) || (liczA > 1 && liczB == 0 && liczC == 0) || (liczA == 0 && liczB == 0 && liczC > 1) || (liczA == liczB && liczC == 0) || (liczA ==0 && liczB == liczC ) || (liczA == liczC && liczB == 0)) { result++; } } } return result + dl; } int main() { string s; cin >> s; cout << balancedWords(s); } |