import std.algorithm;
import std.array;
import std.conv;
import std.range;
import std.stdio;
import std.string;

enum S { E = 0, A = 1, B = 2 };

void main() {
  string s = readln.strip;
  immutable n = s.length;
  auto z = new dchar[n];
  s.copy(z);
  debug stderr.writeln(z);
  long res;
  int i;
  int cnt;

  S t = S.E;
  foreach (c; z) {
    debug stderr.writeln ("state: ", t, ", c = ", c, ", cnt = ", cnt);
    if (t == S.E) {
      if (c == 'A') {
        t = S.A;
        cnt = 1;
      } else if (c == 'B' || c == 'C') {
      }
    } else if (t == S.A) {
      if (c == 'A') {
        ++cnt;
      } else if (c == 'B') {
        t = S.B;
      } else if (c == 'C') {
        t = S.E;
      }
    } else if (t == S.B) {
      if (c == 'A') {
        t = S.A;
        cnt = 1;
      } else if (c == 'B') {
        t = S.E;
        cnt = 0;
      } else if (c == 'C') {
        res += cnt;
        t = S.A;
      }
    }
  }
  writeln (res);
}

