Problem p03131 - Generation 2

Orig Description

Score : 400 points
Problem StatementSnuke has one biscuit and zero Japanese yen (the currency) in his pocket.
He will perform the following operations exactly K times in total, in the order he likes:
Hit his pocket, which magically increases the number of biscuits by one.
Exchange A biscuits to 1 yen.
Exchange 1 yen to B biscuits.
Find the maximum possible number of biscuits in Snuke's pocket after K operations.
Constraints
1 \leq K,A,B \leq 10^9
K,A and B are integers.
InputInput is given from Standard Input in the following format:
K A B
OutputPrint the maximum possible number of biscuits in Snuke's pocket after K operations.
Sample Input 14 2 6
Sample Output 17
The number of biscuits in Snuke's pocket after K operations is maximized as follows:
Hit his pocket. Now he has 2 biscuits and 0 yen.
Exchange 2 biscuits to 1 yen. his pocket. Now he has 0 biscuits and 1 yen.
Hit his pocket. Now he has 1 biscuits and 1 yen.
Exchange 1 yen to 6 biscuits. his pocket. Now he has 7 biscuits and 0 yen.
Sample Input 27 3 4
Sample Output 28
Sample Input 3314159265 35897932 384626433
Sample Output 348518828981938099

Extracted Specification

An integer K (1 ≤ K ≤ 10^9), representing some quantity or size.
An integer A (1 ≤ A ≤ 10^9), representing some quantity or size.
An integer B (1 ≤ B ≤ 10^9), representing some quantity or size.

### Example Input:

```
14 2 6
```

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

Test Case Generator

Sure, I can help you write a test case generator for the given problem statement. Here is the test case generator in Python:

```python
import random

def tcgen():
    # Define the constraints
    K = random.randint(1, 10**9)
    A = random.randint(1, 10**9)
    B = random.randint(1, 10**9)
    
    return K, A, B

# Example usage:
for _ in range(5):  # Generate 5 test cases
    print(tcgen())
```

This function will generate random values for \( K \), \( A \), and \( B \) within their specified ranges and return them as a tuple. You can run this function multiple times to get different test cases.

Let's briefly discuss what each component does:
- `random.randint(1, 10**9)`: Generates a random integer between 1 and \(10^9\) inclusive. This is used for \( K \), \( A \), and \( B \) as per the problem constraints.
- `for _ in range(5)`: This loop generates 5 test cases as an example usage of the `tcgen` function.

You can adjust the number of test cases generated or modify the function as needed to suit your specific requirements.

Extract Arguments

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