Problem p03703 - Generation 1

Orig Description

Score : 600 points
Problem StatementYou are given an integer sequence of length N, a = {a_1, a_2, …, a_N}, and an integer K.
a has N(N+1)/2 non-empty contiguous subsequences, {a_l, a_{l+1}, …, a_r} (1 ≤ l ≤ r ≤ N). Among them, how many have an arithmetic mean that is greater than or equal to K?
Constraints
All input values are integers.
1 ≤ N ≤ 2 \times 10^5
1 ≤ K ≤ 10^9
1 ≤ a_i ≤ 10^9
InputInput is given from Standard Input in the following format:
N K
a_1
a_2
:
a_N
OutputPrint the number of the non-empty contiguous subsequences with an arithmetic mean that is greater than or equal to K.
Sample Input 13 6
7
5
7
Sample Output 15
All the non-empty contiguous subsequences of a are listed below:
{a_1} = {7}
{a_1, a_2} = {7, 5}
{a_1, a_2, a_3} = {7, 5, 7}
{a_2} = {5}
{a_2, a_3} = {5, 7}
{a_3} = {7}
Their means are 7, 6, 19/3, 5, 6 and 7, respectively, and five among them are 6 or greater. Note that {a_1} and {a_3} are indistinguishable by the values of their elements, but we count them individually.
Sample Input 21 2
1
Sample Output 20
Sample Input 37 26
10
20
30
40
30
20
10
Sample Output 313

Extracted Specification

Canonicalized Input Description:

An integer N (1 ≤ N ≤ 2 × 10^5), representing some quantity or size.
An integer K (1 ≤ K ≤ 10^9), representing some value.
A list of N integers where each integer is between 1 and 10^9.

### Example Input:

```
3 6
7
5
7
```

### Function Signature:
Write a function f(N, K, A) that takes in the input.
def f(N: int, K: int, A: List[int]):
    '''
    N: an integer
    K: an integer
    A: a list of integers
    '''

Test Case Generator

Sure, I can write a test case generator for this new problem statement. Here is the generator:

```python
import random

def tcgen():
    # Given constraints
    N = random.randint(1, 2 * 10**5)
    K = random.randint(1, 10**9)
    
    # Generate the sequence a of length N, with values between 1 and 10^9
    a = [random.randint(1, 10**9) for _ in range(N)]
    
    return N, K, a

# Example usage of the test case generator
N, K, a = tcgen()
print(N, K)
for ai in a:
    print(ai)
```

### Explanation:
1. **N**: The length of the sequence is randomly chosen between 1 and 200,000 inclusive.
2. **K**: The integer K is randomly chosen between 1 and 1,000,000,000 inclusive.
3. **a**: The sequence \(a\) consists of \(N\) integers, each randomly chosen between 1 and 1,000,000,000 inclusive.

This generator ensures that the constraints are respected and generates a valid input for the problem. To run the generator and print a test case, you can call `tcgen()` and print the values as shown in the example usage.

Extract Arguments

def extract_arguments(fh):
    N, K = map(int, fh.readline().strip().split())
    A = [int(fh.readline().strip()) for _ in range(N)]
    return N, K, A