Problem p03139 - Generation 1

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

Canonicalized Input Description:

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

### 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! Below is the Python code for generating test cases for the given problem statement:

```python
import random

def tcgen():
    # Generate a random value for N within the given range
    N = random.randint(1, 100)
    
    # Generate random values for A and B such that they follow the constraints
    A = random.randint(0, N)
    B = random.randint(0, N)
    
    return N, A, B

# Example usage:
for _ in range(5):  # Generate 5 test cases
    N, A, B = tcgen()
    print(f"{N} {A} {B}")
```

This `tcgen` function generates random values for \(N\), \(A\), and \(B\) according to the constraints given in the problem statement:

- \(N\) is chosen within the range \(1 \leq N \leq 100\).
- \(A\) and \(B\) are chosen within the range \(0 \leq A \leq N\) and \(0 \leq B \leq N\), respectively.

Here's how you can use the test case generator to produce multiple test cases:

```python
for _ in range(5):  # Generate 5 test cases
    N, A, B = tcgen()
    print(f"{N} {A} {B}")
```

This script will print 5 randomly generated test cases for the survey problem. Each line of the output will have three integers representing \(N\), \(A\), and \(B\). You can adjust the number of iterations to generate more or fewer test cases as needed.

Extract Arguments

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