Problem:
Score : 400 points

Problem Statement

Given are integers A, B, and N.

Find the maximum possible value of floor(Ax/B) - A × floor(x/B) for a non-negative integer x not greater than N.

Here floor(t) denotes the greatest integer not greater than the real number t.

Constraints

1 ≤ A ≤ 10^{6}

1 ≤ B ≤ 10^{12}

1 ≤ N ≤ 10^{12}

All values in input are integers.

Input

Input is given from Standard Input in the following format:

A B N

Output

Print the maximum possible value of floor(Ax/B) - A × floor(x/B) for a non-negative integer x not greater than N, as an integer.

Sample Input 1

5 7 4

Sample Output 1

2

When x=3, floor(Ax/B)-A×floor(x/B) = floor(15/7) - 5×floor(3/7) = 2. This is the maximum value possible.

Sample Input 2

11 10 9

Sample Output 2

9

Solution in Python (3.8.2) (judge verdict: Wrong Answer)


from sys import stdin
input = stdin.readline

a,b,n = map(int,input().split())
maxpoint = 0

if b > n  :
    tmp = int((a * n) / b)  - a * int(n/b) 
    maxpoint = max(tmp,maxpoint)
    print(0)
elif b == n:
    maxpoint = 0
else:
    tmp = int((a * n) / b)  - a * int(n/b) 
    k = int(n/b)*b -1
    t1 =  int((a * k) / b)  - a * int(k/b) 
    maxpoint = max(t1,tmp)
    # for i in reversed(range(n+1)):
    #     t1 =  int((a * i) / b)  - a * int(i/b) 
    #     if b > 1:
    #         if i == k :
    #             print(maxpoint) 
    #             exit()
    #     elif b == 1:
    #         print(0)
    #         exit()
    #     if t1 > maxpoint:
    #         maxpoint = t1
       
    
    # print(tmp)
   
    # print(k)
    
    # maxpoint = max(tmp,k)
    

print(maxpoint)