AT_indeednow_2015_finalb_a Counting on a Triangle
Description
[problemUrl]: https://atcoder.jp/contests/indeednow-finalb-open/tasks/indeednow_2015_finalb_a
Indeed 社の社員である A さんは無限に広がる正三角形状の座標系を眺めています。 上から $ x $ 段目の左から $ y $ 番目の座標は $ (x,y) $ の形で表され、以下のように並んでいます。
(1,1)(2,1)(2,2)(3,1)(3,2)(3,3)(4,1)(4,2)(4,3)(4,4)::::::::つまり、この座標系では、上から $ k $ 段目には $ k $ 個の座標が並んでいます。
この座標系の、ある座標 $ (x,y) $ に対する重みを $ x $ と $ y $ の積で定義します。
A さんは、以下の問題を規則性を見つけることによって手で解こうとしています。
$ 2 $ つの正整数 $ A,B\ (1≦A≦B≦10^6) $ が与えられるので、上から $ A $ 段目と上から $ B $ 段目の間、つまり $ A≦x≦B $ を満たす全ての座標 $ (x,y) $ の重みの総和を答えてください。 ただし、答えは非常に大きくなる可能性があるのでその総和を $ 1,000,000,007(10^9+7) $ で割った余りを答えてください。
あなたの仕事は、A さんが頑張って導き出した答えの正誤を確かめるために、コンピューターの力を使い予め答えを自動計算しておくプログラムをつくることです。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ A $ $ B $
- $ 1 $ 行目には、正の整数 $ A\ (1≦A≦10^6) $ が与えられる。
- $ 2 $ 行目には、正の整数 $ B\ (A≦B≦10^6) $ が与えられる。
Output Format
$ 1 $ 行目に、問題文中の座標系における $ A≦x≦B $ を満たす全ての座標 $ (x,y) $ の重みの総和を $ 1,000,000,007 $ で割った余りを出力せよ。出力の末尾に改行を入れること。
Explanation/Hint
### 部分点
この問題には部分点が設定されている。
- $ 1≦A≦B≦2000 $ を満たすデータセット $ 1 $ に正解した場合は、$ 20 $ 点が与えられる。
- 全てのテストケースに正解した場合は、上記とは別に $ 80 $ 点が与えられる。
### Sample Explanation 1
$ 2 $ 段目から $ 3 $ 段目の間に含まれる座標は以下の $ 5 $ つです。 (2,1)(2,2)(3,1)(3,2)(3,3)したがって、答えは $ 24(=2×1+2×2+3×1+3×2+3×3) $ となります。
### Sample Explanation 3
$ 1,000,000,007 $ で割った余りを取るのを忘れないでください。