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