Problem p02708 - Generation 1

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:

```
13 2
```

### Function Signature:
Write a function f(N, K) that takes in the input. 
def f(N: int, K: int): 
    ''' 
    N: an integer 
    K: an integer
    '''

Test Case Generator

Sure! Below is a test case generator for the given problem statement:

```python
import random

def tcgen():
    N = random.randint(1, 200000)
    K = random.randint(1, N + 1)
    return N, K

# Example usage:
if __name__ == "__main__":
    N, K = tcgen()
    print(N, K)
```

### Explanation:
1. **N Generation**:
   - `N` is generated randomly between 1 and 200,000 (inclusive), as per the constraints.

2. **K Generation**:
   - `K` is generated randomly between 1 and \(N + 1\) (inclusive), ensuring it adheres to the constraint \(1 \leq K \leq N + 1\).

### Sample Outputs:
- When you run the generator, it will give you random test cases within the specified constraints. For example:
  ```
  13795 4302
  200000 150000
  1 1
  ```

You can use this generator to create multiple test cases for your problem. The values will be printed in the required format for each test run.

Extract Arguments

def extract_arguments(fh):
    N, K = map(int, fh.readline().strip().split())
    return N, K