#include #include #include #include unsigned int flipCnt(std::string& input) { auto s = input.begin(); unsigned int flipCnt = 0u; while (s != input.end()) { char last = *s; char curr = *(++s); bool found = false; while (s != input.end()) { if (curr == last) { found = true; break; } last = curr; curr = *(++s); } if (!found) break; char matched = curr; char toFind = (matched == '+') ? '-' : '+'; auto e = s; last = *e; curr = *(++e); while (e != input.end()) { if (curr == last && curr == toFind) break; last = curr; curr = *(++e); } std::reverse(s, e); ++flipCnt; } return flipCnt; } int main() { std::string input; std::cin >> input; std::cout << flipCnt(input) << std::endl; return 0; }