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