atcoder#DDCC2020QUALD. Digit Sum Replace

Digit Sum Replace

配点: 500500

問題文

DDCC 20XX の予選には,NN 人のプログラマーが参加する予定です.しかし,会場の都合上,本戦には 99 人までしか参加できません.

そこで,予選を何ラウンドかに分けて勝ち抜き方式で行うことにしました.これは,以下のルールに従って行われます.

  • 最初のラウンドには NN 人全員が参加する.
  • あるラウンドに X (X10)X \ (X \geq 10) 人が参加するとき,次のラウンドに勝ち残る人数を以下のように決定する.- XX の十進表記において,ある連続する 22 桁を選び,それらをその和で置き換えて得られる数を勝ち残る人数とする. 例えば,X=2378X = 2378 のとき,勝ち残る人数は 578578 (2,32,3 を選んだ場合),21082108 (3,73,7 を選んだ場合),23152315 (7,87,8 を選んだ場合) 人のいずれかとなる. X=100X = 100 のときは,どちらの 22 桁を選んだとしても勝ち残る人数は 1010 人となる.
  • XX の十進表記において,ある連続する 22 桁を選び,それらをその和で置き換えて得られる数を勝ち残る人数とする. 例えば,X=2378X = 2378 のとき,勝ち残る人数は 578578 (2,32,3 を選んだ場合),21082108 (3,73,7 を選んだ場合),23152315 (7,87,8 を選んだ場合) 人のいずれかとなる. X=100X = 100 のときは,どちらの 22 桁を選んだとしても勝ち残る人数は 1010 人となる.
  • 勝ち残った人数が 99 人以下となったら,予選を終了する.

DDCC 20XX の運営リーダーであるりんごさんは,できるだけ多くの予選ラウンドを開催したいです. 最大で何ラウンドの予選を開催できるか求めてください.

ただし,参加者数 NN は非常に多くなる場合があるので,22 つの整数列 d1,,dMd_1, \ldots, d_Mc1,,cMc_1, \ldots, c_M として与えられます. これは,NN が十進表記において c1+c2++cMc_1 + c_2 + \ldots + c_M 桁の数であり,その先頭の c1c_1 桁の数字がいずれも d1d_1,続く c2c_2 桁の数字がいずれも d2d_2\ldots,最後の cMc_M 桁の数字がいずれも dMd_M であることを表します.

制約

  • 1M2000001 \leq M \leq 200000
  • 0di90 \leq d_i \leq 9
  • d10d_1 \neq 0
  • didi+1d_i \neq d_{i+1}
  • ci1c_i \geq 1
  • 2c1++cM10152 \leq c_1 + \ldots + c_M \leq 10^{15}

入力

入力は以下の形式で標準入力から与えられます.

MM

d1d_1 c1c_1

d2d_2 c2c_2

::

dMd_M cMc_M

出力

予選ラウンドの数の最大値を出力してください.

2
2 2
9 1
3

この場合,予選の最初のラウンドには N=229N=229 人が参加します.大会の経過の一例として、次のパターンがありえます.

  • ラウンド 11229229 人が参加し,ラウンド 224949 人が参加し,ラウンド 331313 人が参加し,本戦に 44 人が進出する.

このとき,予選は 33 ラウンド行われ、これが実は最適であることが分かります。

3
1 1
0 8
7 1
9

この場合,最初のラウンドには 10000000071000000007 人が参加します.