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