https://atcoder.jp/contests/abc455/tasks/abc455_e一つでも同じ数の部分文字列の数を数えます。文字列を半分にして、片側だけに収まるそのような部分文字列を再帰的に数えて、別に両方にまたがる部分文字列を数えます。真ん中から左側に伸びる部分文字列をBの数からAの数を引いたものの数を数えます。真ん中から右側に伸びる部分文字列も同様に数えて、値を足したら0になるものを探します。AとBとCの数でも同様に数えて、包除原理を使います。 // Unbalanced ABC Substrings #![allow(non_snake_case)] use std::c…