B - ABC
Editorial
/
Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 600 点
問題文
A
,B
,C
からなる文字列 s が与えられます。
すぬけ君は s に対して次の操作をできるだけ多く行おうとしています。
- s の連続した部分文字列であって
ABC
であるようなものをひとつ選び、BCA
に書き換える。
操作回数の最大値を求めてください。
制約
- 1 ≦ |s| ≦ 200000
- s の各文字は
A
,B
,C
のいずれか
入力
入力は以下の形式で標準入力から与えられる。
s
出力
操作回数の最大値を出力せよ。
入力例 1
ABCABC
出力例 1
3
ABCABC
→ BCAABC
→ BCABCA
→ BCBCAA
とすることで 3 回操作可能で、これが最大です。
入力例 2
C
出力例 2
0
入力例 3
ABCACCBABCBCAABCB
出力例 3
6
Score : 600 points
Problem Statement
You are given a string s consisting of A
, B
and C
.
Snuke wants to perform the following operation on s as many times as possible:
- Choose a contiguous substring of s that reads
ABC
and replace it withBCA
.
Find the maximum possible number of operations.
Constraints
- 1 \leq |s| \leq 200000
- Each character of s is
A
,B
andC
.
Input
Input is given from Standard Input in the following format:
s
Output
Find the maximum possible number of operations.
Sample Input 1
ABCABC
Sample Output 1
3
You can perform the operations three times as follows: ABCABC
→ BCAABC
→ BCABCA
→ BCBCAA
. This is the maximum result.
Sample Input 2
C
Sample Output 2
0
Sample Input 3
ABCACCBABCBCAABCB
Sample Output 3
6