Orig Description
Score : 400 points
Problem StatementWe 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.
InputInput is given from Standard Input in the following format:
N K
OutputPrint the number of possible values of the sum, modulo (10^9+7).
Sample Input 13 2
Sample Output 110
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 2200000 200001
Sample Output 21
We must choose all of the integers, so the sum can take just 1 value.
Sample Input 3141421 35623
Sample Output 3220280457
Extracted Specification
An integer N (1 ≤ N ≤ 2×10^5), representing some quantity or size.
An integer K (1 ≤ K ≤ N+1), representing another quantity or size.
### Example Input:
```
3 2
```
### Function Signature:
Write a function f(N, K) that takes in the input.
```python
def f(N: int, K: int):
'''
N: an integer
K: an integer
'''
```
Test Case Generator
To generate test cases for the problem statement you provided, we need to create a function that generates random values for \(N\) and \(K\) within the specified constraints. Here's how we can do it:
```python
import random
def tcgen():
N = random.randint(1, 2 * 10**5)
K = random.randint(1, N + 1)
return N, K
# Example usage
for _ in range(5): # Generate 5 test cases
print(tcgen())
```
This function generates random values for \(N\) and \(K\) within the given constraints:
- \(1 \leq N \leq 2 \times 10^5\)
- \(1 \leq K \leq N + 1\)
Let's break down the function:
1. `N` is chosen randomly between `1` and `2 * 10**5` inclusive.
2. `K` is chosen randomly between `1` and `N + 1` inclusive.
This will produce valid input pairs for the problem.
Here are a few sample outputs from the generator to illustrate:
```
(175634, 14792)
(200000, 192345)
(123456, 98765)
(2, 1)
(199999, 67890)
```
You can use these generated inputs to test your solution for the problem.
Extract Arguments
def extract_arguments(fh):
N, K = map(int, fh.readline().strip().split())
return N, K