Each Digit Comparison

2 secs 1024 MB
Raclamusi's icon Raclamusi

まず、 CCAABB のどちらであるかを考えます。
CCA,BA,B のうちの小さいほうなので、 SS の最も左にある不等号を調べ、それが < なら A<BA \lt B より C=AC = A> なら A>BA \gt B より C=BC = B です。

C=AC = A のときについて考えます。
このとき、この問題は BB が何通りあるかを求めることになります。そこで、 BB の各桁について何通りあるかを考えます。
B,CB,C の左から ii 番目の桁をそれぞれ Bi,CiB_i,C_i とします。

  • SiS_i= のとき
    Bi=CiB_i = C_i11 通りしかありません。
  • SiS_i< のとき
    Ci<Bi9C_i \lt B_i \le 9(9Ci)(9 - C_i) 通りあります。
  • SiS_i> のとき
    0Bi<Ci0 \le B_i \lt C_iCiC_i 通りあります。

そして、各桁で出た答えをすべて掛けて 109+710^9+7 で割った余りが答えになります。

また、 SiS_i の不等号の向きを変え、 AABB を置き換えて考えることで、 C=BC = B のときも同様に答えを求めることができます。