082 - Counting Numbers(★3)
Editorial
/


Time Limit: 2 sec / Memory Limit: 1024 MB
配点: 3 点
問題文
何も書かれていない黒板があります。 x=L,\ L+1,\ \dots,\ R の順に、以下の操作を行います。
- 黒板に、整数 x を x 回書く。
全ての操作が終了した後、黒板に書かれている文字の個数を 10^9+7 で割った余りを求めてください。
ただし、数えるのは整数ではなく文字である事に注意してください。例えば、整数 15 は 2 個の文字として数えます。
制約
- 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
全ての操作が終了した後、黒板には 98 が 98 個、99 が 99 個、100 が 100 個書かれています。
よって、書かれている文字の個数は 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 整数型に収まらない可能性があります。