https://www.luogu.com.cn/record/171453506
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
string str;
cin >> n >> str;
long long ans = 0;
unordered_map<string, long long> m;
string s;
m[s] ++;
s.insert(s.begin(), str[0]);
m[s] ++;
for (int i = 1; i < n; i ++)
{
if(s.front() == str[i])
{
s.erase(s.begin());
m[s] ++;
if (s.size() == 0)
{
s.insert(s.begin(), str[++i]);
m[s] ++;
}
}
else
{
s.insert(s.begin(), str[i]);
m[s] ++;
}
}
for (auto x : m)
{
ans += (x.second) * (x.second - 1) / 2;
}
cout << ans;
return 0;
}