#include <iostream>
#include <string>
#include <algorithm>
#define rep(i, n) for(i = 0; i < n; i++)
#define int long long
using namespace std;

int n;
string s;
int cntPre[200001];	//cntPre[i] = s[0, i)において?を全てAにしたときの部分列ACの数
int cntSuf[200001];	//cntSuf[i] = s[i, n)において?を全てCにしたときの部分列ACの数
int ra[200001], rc[200001];

signed main() {
	int i;

	cin >> n >> s;
	rep(i, n) {
		if (s[i] == 'A') ra[i + 1]++;
		if (s[i] == 'C') rc[i + 1]++;
	}
	rep(i, n) ra[i + 1] += ra[i];
	rep(i, n) rc[i + 1] += rc[i];

	int cntA = 0;
	rep(i, n) {
		if (s[i] != 'C') cntA++;
		cntPre[i + 1] = cntPre[i] + (s[i] == 'C') * cntA;
	}

	int cntC = 0;
	for (i = n - 1; i >= 0; i--) {
		if (s[i] != 'A') cntC++;
		cntSuf[i] = cntSuf[i + 1] + (s[i] == 'A') * cntC;
	}

	int ans = 0;
	rep(i, n + 1) {
		int zero = i - rc[i];
		int one = (n - i) - (ra[n] - ra[i]);
		int score = zero * one + cntPre[i] + cntSuf[i];
		ans = max(ans, score);
	}

	cout << ans << endl;
	return 0;
}