#indeednow2015finalba. [indeednow_2015_finalb_a]Counting on a Triangle

[indeednow_2015_finalb_a]Counting on a Triangle

问题描述

A 是 Indeed 公司的员工,他正在观察一个无限扩展的正三角形坐标系。从上到下第 xx 层从左到右的第 yy 个坐标用 (x,y)(x,y) 表示,并按照以下方式排列:

(1, 1) (2, 1) (2, 2) (3, 1) (3, 2) (3, 3) (4, 1) (4, 2) (4, 3) (4, 4) ...

换句话说,在这个坐标系中,第 kk 层有 kk 个坐标。

定义某个坐标 (x,y)(x,y) 的权重为 xxyy 的乘积。

A 正试图通过找规律手动解决以下问题:

给定两个正整数 AABB (1AB106)(1≦A≦B≦10^6),请计算第 AA 层和第 BB 层之间,即满足 AxBA≦x≦B 的所有坐标 (x,y)(x,y) 的权重总和。请注意,答案可能非常大,因此请将结果除以 1,000,000,007(109+7)1,000,000,007 (10^9+7) 并输出余数作为答案。

你的任务是使用计算机的力量编写程序,预先自动计算答案,以便确认 A 的答案的正确性。


输入

输入以以下格式从标准输入中给出。

AA BB

  • 第一行是一个正整数 A(1A106)A (1≦A≦10^6)
  • 第二行是一个正整数 B(AB106)B (A≦B≦10^6)

部分得分

此问题设有部分得分。

  • 如果解决了满足 1AB20001≦A≦B≦2000 的数据集 1,则可获得 20 分。
  • 如果对所有测试用例都正确,则可以额外获得 80 分。

输出

在第一行输出在问题描述中的坐标系中满足 AxBA≦x≦B 的所有坐标 (x,y)(x,y) 的权重总和除以 1,000,000,0071,000,000,007 的余数。输出后换行。


输入示例1


2
3

输出示例1


24

第2层到第3层之间包含以下5个坐标:

(2, 1) (2, 2) (3, 1) (3, 2) (3, 3)

因此,答案为 24(=2×1+2×2+3×1+3×2+3×3)24(=2×1+2×2+3×1+3×2+3×3)


输入示例2


1
100

输出示例2


12920425

输入示例3


999999
999999

输出示例3


500507028

请记住要取余数为 1,000,000,0071,000,000,007