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 5.4.1) (judge verdict: Runtime Error)

#include <stdio.h>
#include <math.h>

long long m[1000005]={0};
int main() 
{
	long long x,i,j,s,d,b,a,max;
	double q,e,p;
	scanf("%lld%lld%lld",&a,&b,&x);
	for(i=0;i<=x;i++)
	{
		q= (double)(a*i) / b;
		j=q;
		e= (double)i / b;
		s=e;
		s=a*s;
		m[i]=j-s;
 	}
 	max=m[0];
 
    for(i=0;i<=x;i++)
    {
    	if(max<m[i])
    	  max =m[i];
	}
	 printf("%lld",max);
    return 0;
}