#include #include int main() { int N; std::string s; std::cin >> N; s.reserve(N + 16); std::cin >> s; std::vector count_x(N + 16); std::vector count_o(N + 16); long long amount = 0; for (int i = 1; i <= N; ++i) { if (s[i - 1] == 'X') { count_x[i] = count_x[i - 1] + 1; count_o[i] = count_o[i - 1]; } else { count_x[i] = count_x[i - 1]; count_o[i] = count_o[i - 1] + 1; } for (int n = 3; n * n <= i; ++n) { int size = n * n; int x = count_x[i] - count_x[i - size]; int o = count_o[i] - count_o[i - size]; int exp1 = (n - 2) * (n - 2); int exp2 = size - exp1; if ((x == exp1 && o == exp2) || (x == exp2 && o == exp1)) amount++; } // std::cout << amount << '\n'; // std::cout << count_x[i] << ' ' << count_o[i] << '\n'; } std::cout << amount << '\n'; return 0; }