Problem p03131 - Generation 1

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! Here is a test case generator for the given problem statement:

```python
import random

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

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

This code will generate random test cases for the problem. Each test case will consist of three integers \( K \), \( A \), and \( B \), with the constraints \( 1 \leq K, A, B \leq 10^9 \).

To generate and print multiple test cases, you can run the script and it will output the generated test cases. Adjust the number of test cases as needed by changing the range in the for loop.

Extract Arguments

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