Problem p02708 - Generation 3

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

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

```python
import random

def tcgen():
    # Generate a random value for N in the range [1, 200000]
    N = random.randint(1, 2 * 10**5)
    # Generate a random value for K in the range [1, N+1]
    K = random.randint(1, N + 1)
    
    return N, K

# Function to print the generated test case in the required format
def print_test_case():
    N, K = tcgen()
    print(N, K)

# Example usage
print_test_case()
```

This `tcgen` function generates random values for \( N \) and \( K \) based on the given constraints:

1. \( N \) is randomly chosen between 1 and 200,000.
2. \( K \) is randomly chosen between 1 and \( N + 1 \).

The `print_test_case` function calls `tcgen` to generate a test case and prints it in the required format.

You can run `print_test_case()` multiple times to generate different test cases.

Extract Arguments

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