Problem p03139 - Generation 3

Orig Description

Score : 100 points
Problem StatementWe conducted a survey on newspaper subscriptions.
More specifically, we asked each of the N respondents the following two questions:
Question 1: Are you subscribing to Newspaper X?
Question 2: Are you subscribing to Newspaper Y?
As the result, A respondents answered "yes" to Question 1, and B respondents answered "yes" to Question 2.
What are the maximum possible number and the minimum possible number of respondents subscribing to both newspapers X and Y?
Write a program to answer this question.
Constraints
1 \leq N \leq 100
0 \leq A \leq N
0 \leq B \leq N
All values in input are integers.
InputInput is given from Standard Input in the following format:
N A B
OutputPrint the maximum possible number and the minimum possible number of respondents subscribing to both newspapers, in this order, with a space in between.
Sample Input 110 3 5
Sample Output 13 0
In this sample, out of the 10 respondents, 3 answered they are subscribing to Newspaper X, and 5 answered they are subscribing to Newspaper Y.
Here, the number of respondents subscribing to both newspapers is at most 3 and at least 0.
Sample Input 210 7 5
Sample Output 25 2
In this sample, out of the 10 respondents, 7 answered they are subscribing to Newspaper X, and 5 answered they are subscribing to Newspaper Y.
Here, the number of respondents subscribing to both newspapers is at most 5 and at least 2.
Sample Input 3100 100 100
Sample Output 3100 100

Extracted Specification

An integer N (1 ≤ N ≤ 100), representing some quantity or size.
An integer A (0 ≤ A ≤ N).
An integer B (0 ≤ B ≤ N).

### Example Input:

```
10 3 5
```

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

Test Case Generator

Sure, I can help you write a test case generator for this problem statement. The generator will produce random valid inputs for the given constraints. Here is the code:

```python
import random

def tcgen():
    # Generate N in the range [1, 100]
    N = random.randint(1, 100)
    
    # Generate A and B in the range [0, N]
    A = random.randint(0, N)
    B = random.randint(0, N)
    
    return N, A, B

# Sample usage
for _ in range(5):  # Generate and print 5 sample test cases
    N, A, B = tcgen()
    print(N, A, B)
```

This generator ensures that the values of \(N\), \(A\), and \(B\) adhere to the constraints given in the problem statement. Here's a brief explanation:

- `N` is a random integer between 1 and 100, inclusive.
- `A` is a random integer between 0 and \(N\), inclusive.
- `B` is a random integer between 0 and \(N\), inclusive.

These generated values can be used as input for the problem to test various edge cases and typical cases. Feel free to run the `tcgen` function multiple times to generate multiple test cases.

Extract Arguments

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