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 C (GCC 9.2.1) (judge verdict: Wrong Answer)

#include<stdio.h>
#include<math.h>
int main(){

    long int A,B,N;

    scanf("%ld %ld %ld", &A, &B, &N);

    long int i;
    int a,b,y;
    int ans=0;
    int i_max;
//    if( N < B ) i_max = N;
//    else i_max = B;
    int flag=0;

    for( i = 1; i <= N; i++ ){
        //a = A*i/B;
        //b = i/B;
        y = floor(A*i/B) - (A * floor(i/B));
        //printf("x=%d y=%d a=%d b=%d\n", i, y, a, b);
        if( y > ans ) ans = y;
        else flag += 1;
        if( flag == 4 ) break;
    }

    printf("%d\n", ans);

    return 0;
}