082 - Counting Numbers(★3) Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点: 3

問題文

何も書かれていない黒板があります。 x=L,\ L+1,\ \dots,\ R の順に、以下の操作を行います。

  • 黒板に、整数 xx 回書く。

全ての操作が終了した後、黒板に書かれている文字の個数を 10^9+7 で割った余りを求めてください。

ただし、数えるのは整数ではなく文字である事に注意してください。例えば、整数 152 個の文字として数えます。

制約

  • 1 \leq L \leq R \leq 10^{18}
  • 入力は全て整数

入力

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

L R

出力

全ての操作が終了した後、黒板に書かれている文字の個数を 10^9+7 で割った余りを出力してください。


入力例 1

3 5

出力例 1

12

全ての操作が終了した後、黒板には以下の整数が書かれています。

3,\ 3,\ 3,\ 4,\ 4,\ 4,\ 4,\ 5,\ 5,\ 5,\ 5,\ 5

よって、書かれている文字の個数は 12 です。


入力例 2

98 100

出力例 2

694

全ての操作が終了した後、黒板には 9898 個、9999 個、100100 個書かれています。

よって、書かれている文字の個数は 2\times 98+2\times 99+3\times 100=694 です。


入力例 3

1001 869120

出力例 3

59367733

10^9+7 で割った余りを出力してください。


入力例 4

381453331666495446 746254773042091083

出力例 4

584127830

入力は 32 bit 整数型に収まらない可能性があります。


Source Name

「競プロ典型90問」82日目