using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); public static void Main() { Solve(); } static void Solve() { var n = NN; var s = ReadLine(); var sc = s.Replace('?', 'C'); var acount = 0; var tmp = 0L; for (var i = 0; i < n; ++i) { if (sc[i] == 'A') ++acount; else tmp += acount; } var ccount = new int[n]; for (var i = n - 1; i >= 0; --i) { if (i < n - 1) ccount[i] = ccount[i + 1]; if (sc[i] != 'A') ++ccount[i]; } acount = 0; var max = tmp; for (var i = 0; i < n; ++i) { if (s[i] == 'A') ++acount; if (s[i] == '?') { tmp = tmp - acount + ccount[i] - 1; ++acount; max = Math.Max(max, tmp); } } WriteLine(max); } }