Ranking (as of 2015-04-07): 33 out of 153
Language: C++
/*
UVa 906 - Rational Neighbor
To build using Visual Studio 2012:
cl -EHsc -O2 UVa_906_Rational_Neighbor.cpp
*/
#include <cstdio>
#include <cmath>
int main()
{
long long a, b;
while (scanf("%lld %lld", &a, &b) != EOF) {
double n;
scanf("%lf", &n);
long long m = static_cast<long long>(ceil(1.0 / (n * b)));
long long c, d;
bool done = false;
for (d = m; ; d++) {
for (c = static_cast<long long>(static_cast<double>(a) * d / b); ; c++) {
long long e = b * c - a * d;
if (e <= 0)
continue;
if (e <= n * b * d) {
done = true;
break;
}
else
break;
}
if (done)
break;
}
printf("%lld %lld\n", c, d);
}
return 0;
}
No comments:
Post a Comment