Problem:
Score : 400 points

Problem Statement

We have N+1 integers: 10^{100}, 10^{100}+1, ..., 10^{100}+N.

We will choose K or more of these integers. Find the number of possible values of the sum of the chosen numbers, modulo (10^9+7).

Constraints

1 \leq N \leq 2\times 10^5

1 \leq K \leq N+1

All values in input are integers.

Input

Input is given from Standard Input in the following format:

N K

Output

Print the number of possible values of the sum, modulo (10^9+7).

Sample Input 1

3 2

Sample Output 1

10

The sum can take 10 values, as follows:

(10^{100})+(10^{100}+1)=2\times 10^{100}+1

(10^{100})+(10^{100}+2)=2\times 10^{100}+2

(10^{100})+(10^{100}+3)=(10^{100}+1)+(10^{100}+2)=2\times 10^{100}+3

(10^{100}+1)+(10^{100}+3)=2\times 10^{100}+4

(10^{100}+2)+(10^{100}+3)=2\times 10^{100}+5

(10^{100})+(10^{100}+1)+(10^{100}+2)=3\times 10^{100}+3

(10^{100})+(10^{100}+1)+(10^{100}+3)=3\times 10^{100}+4

(10^{100})+(10^{100}+2)+(10^{100}+3)=3\times 10^{100}+5

(10^{100}+1)+(10^{100}+2)+(10^{100}+3)=3\times 10^{100}+6

(10^{100})+(10^{100}+1)+(10^{100}+2)+(10^{100}+3)=4\times 10^{100}+6

Sample Input 2

200000 200001

Sample Output 2

1

We must choose all of the integers, so the sum can take just 1 value.

Sample Input 3

141421 35623

Sample Output 3

220280457

Solution in Ruby (2.7.1) (judge verdict: Accepted)

n, k = gets.split.map(&:to_i)

# n+1個からk個以上を選んだ和
# k個
# (10^100+a) + (10^100+b) + ... = k*10^100 + (a + b + ...)
# k+1個
# (10^100+a) + (10^100+b) + ... = (k+1)*10^100 + (a + b + ...)
# -> k個とk+1個だと絶対に和は被らない
# a,b,...の部分で、0+1+4+5 = 0+2+3+5のような被りはある。
#
# 0+1+2+...+(k-2)+(k-1)
#       ...
# 0+1+2+...+(k-2)+  n   n-(k-1)+1=n-k+2通り
# 0+1+2+...+(k-1)+  n
#       ...
# 0+1+2+...+(n-1)+  n   (n-1)-(k-1)+1=n-k+1通り
#       ...
# 1+(n-k+2)+...+(n-1)+n
#       ...
# (n-k+1)+.......+  n   (n-k+1)-1+1 = n-k+1通り
#
# 0+1+2+3
# 0+1+2+4
# 0+1+2+5
# 0+1+2+6 6-4+2=4
# 0+1+3+6
# 0+1+4+6
# 0+1+5+6 6-4+1=3
# 0+2+5+6
# 0+3+5+6
# 0+4+5+6 6-4+1=3
# 1+4+5+6
# 2+4+5+6
# 3+4+5+6 6-4+1=3
# 
# n-k+2 + (n-k+1)(k-1)

total = 1
(k..n).each do |i|
  total += (n-i+2) + (n-i+1)*(i-1)
end

puts total % (10**9+7)