#include using namespace std; using ll = long long; #define fo(a,b) for(int a=0;a<(b);a++) const int START = 123456; int n; char in[1123456]; unordered_map counts; ll join(ll a, ll b) { if(a<0 || b<0) return -1; return (a<<30) + b; } int main() { ll out = 0; scanf("%d %s", &n, in); ll as=0; ll bs=0; fo(i,n) { counts[join(as, bs)]++; if(in[i]=='X') bs++; else as++; for(ll e=1;;e++) { ll inz = e*e; ll outz = 4+4*e; out += counts[join(as-inz, bs-outz)]; out += counts[join(as-outz, bs-inz)]; if(inz>max(as, bs)) break; } } printf("%lld\n", out); return 0; }