#include using namespace std; #define rep(i, a, b) for (int i = a; i < b; i++) using ll = long long; int main(){ int N; string s; cin >> N >> s; map mp; vector> mpv(N); for(int i = N - 1; i >= 0; i--) { mp[s[i]]++; mpv[i] = mp; } vector> c(26); rep(i, 0, N) { int n = s[i] - 'A'; c[n].push_back(i); } ll ans = 0; rep(i, 0, 26) { int sz = c[i].size(); if(sz < 2) continue; char c2 = (char)(i + 'A'); rep(j, 0, sz) { rep(k, j + 1, sz) { int l = c[i][j]; int r = c[i][k]; if(r - l < 2 || r + 1 >= N) continue; map tmp = mpv[r + 1]; using P = pair; vector

p; for(auto it = tmp.begin(); it != tmp.end(); it++) { char f = it->first; if(f == c2) continue; p.push_back(P(f, it->second)); } int sz = p.size(); rep(m, l + 1, r) { if(s[m] == c2) continue; rep(n, 0, sz) { if(p[n].first == s[m]) continue; rep(o, n + 1, sz) { if(p[o].first == s[m]) continue; ans += p[n].second * p[o].second; } } } } } } cout << ans << endl; }