voidJiuCherish(){ std::string s; std::cin >> s; int n = s.length(); int sum = 1; int ans = 1; for(int i=1;i<n;i++) { if(s[i] == s[i - 1]) sum = 1; else sum += 1; ans = (ans + sum) % mod; } std::cout << ans << endl; }
voidJiuCherish(){ int n; std::cin >> n; std::string s; std::cin >> s; int ans = n * (n + 1) / 2; std::map<int,int> cntab,cntac,cntbc; std::map<std::pair<int,int>,int> cntabc; int a = 0,b = 0,c = 0; cntab[0] += 1; cntac[0] += 1; cntbc[0] += 1; cntabc[{0,0}] += 1; for(auto x : s) { if(x == 'A') a += 1; elseif(x == 'B') b += 1; else c += 1; int diffab = a - b; int diffac = a - c; int diffbc = b - c; cntab[diffab] += 1; cntac[diffac] += 1; cntbc[diffbc] += 1; cntabc[{diffab,diffac}] += 1; } auto calc = [](auto &mp) -> int { int res = 0; for(auto& [u,v] : mp) res += v * (v - 1) / 2; return res; }; int fab = calc(cntab); int fac = calc(cntac); int fbc = calc(cntbc); int fabc = calc(cntabc); std::cout << ans - fab - fac - fbc + 2 * fabc << endl; }