Orig Description
Score : 1000 points
Problem StatementThere are M chairs arranged in a line. The coordinate of the i-th chair (1 ≤ i ≤ M) is i.
N people of the Takahashi clan played too much games, and they are all suffering from backaches. They need to sit in chairs and rest, but they are particular about which chairs they sit in. Specifically, the i-th person wishes to sit in a chair whose coordinate is not greater than L_i, or not less than R_i. Naturally, only one person can sit in the same chair.
It may not be possible for all of them to sit in their favorite chairs, if nothing is done.
Aoki, who cares for the health of the people of the Takahashi clan, decides to provide additional chairs so that all of them can sit in chairs at their favorite positions.
Additional chairs can be placed at arbitrary real coordinates. Find the minimum required number of additional chairs.
Constraints
1 ≤ N,M ≤ 2 × 10^5
0 ≤ L_i < R_i ≤ M + 1(1 ≤ i ≤ N)
All input values are integers.
InputInput is given from Standard Input in the following format:
N M
L_1 R_1
:
L_N R_N
OutputPrint the minimum required number of additional chairs.
Sample Input 14 4
0 3
2 3
1 3
3 4
Sample Output 10
The four people can sit in chairs at the coordinates 3, 2, 1 and 4, respectively, and no more chair is needed.
Sample Input 27 6
0 7
1 5
3 6
2 7
1 6
2 6
3 7
Sample Output 22
If we place additional chairs at the coordinates 0 and 2.5, the seven people can sit at coordinates 0, 5, 3, 2, 6, 1 and 2.5, respectively.
Sample Input 33 1
1 2
1 2
1 2
Sample Output 32
Sample Input 46 6
1 6
1 6
1 5
1 5
2 6
2 6
Sample Output 42
Extracted Specification
An integer N (1 ≤ N ≤ 2 × 10^5), representing some quantity or size.
An integer M (1 ≤ M ≤ 2 × 10^5), representing some quantity or size.
A list of tuples of integers (L_i, R_i) of size N, where 0 ≤ L_i < R_i ≤ M + 1.
### Example Input:
```
4 4
0 3
2 3
1 3
3 4
```
### Function Signature:
Write a function f(inputs) that takes in the input.
def f(inputs: List[Tuple[int, int]]):
'''
inputs: a list of tuples, where each tuple contains two integers
'''
Test Case Generator
Certainly! Here is a test case generator for the given problem statement:
```python
import random
def tcgen():
# Define the constraints
N = random.randint(1, 2 * 10**5)
M = random.randint(1, 2 * 10**5)
L = []
R = []
for _ in range(N):
l = random.randint(0, M)
r = random.randint(l + 1, M + 1)
L.append(l)
R.append(r)
# Prepare the input in the required format
input_str = f"{N} {M}\n"
for l, r in zip(L, R):
input_str += f"{l} {r}\n"
return input_str
# Example usage
if __name__ == "__main__":
print(tcgen())
```
### Explanation of the Generator:
1. **Constraints Handling**:
- `N` is the number of people and is chosen randomly between 1 and \(2 \times 10^5\).
- `M` is the number of chairs and is also chosen randomly between 1 and \(2 \times 10^5\).
2. **Generating L and R**:
- For each person, generate `L_i` such that \(0 \leq L_i\ \leq M\).
- Generate `R_i` such that \(L_i < R_i \leq M + 1\).
3. **Formatting the Input**:
- The input starts with `N` and `M`.
- For each person, it outputs the pair `L_i` and `R_i` as required by the problem statement.
### Example Output from the Generator:
```
72439 15239
125 632
2457 9674
...
```
This generated output can be used directly to test the function that solves the problem. Make sure to run your solution with these generated test cases to verify its correctness and performance.
Extract Arguments
def extract_arguments(fh):
N, M = map(int, fh.readline().strip().split())
LR = [tuple(map(int, fh.readline().strip().split())) for _ in range(N)]
return N, M, LR