# AtCoder Grand Contest 034

URL: https://atcoder.jp/contests/agc034 (opens new window)

# B

s = gets.chomp

result = 0

i = 0
a_count = 0
a_flag = false

# AA...ABCの形を探す
while i < s.length do
  if a_flag # A継続モードのとき
    if s[i] == "A"
      a_count += 1
    elsif s[i] == "B" && s[i+1] == "C"
      # AA...ABCの形を見つけたらAの数だけ操作可能
      # 操作後はBCAA...Aの形になるのでA継続モードはつづく
      result += a_count
      # 2個分indexを動かしたいのでここで余分に+1しておく
      i += 1
    else
      # 対象の操作はできず
      a_count = 0
      a_flag = false
    end
  elsif s[i] == "A" # Aが表れたとき
    a_count = 1
    # A継続モードに入る
    a_flag = true
  end
  # indexを動かす
  i += 1
end

puts result
Last Updated: 2020/08/18 23:38