#include <bits/stdc++.h>
#define LL long long
#define pL pair <LL, LL>
using namespace std;
int n; LL r;
pL solve(LL lu, LL ld, LL ru, LL rd)
{
LL x = lu / ld + 1;
if (x * rd < ru) return pL(x, 1);
if (!lu) return pL(1, rd / ru + 1);
if (lu <= ld && ru <= rd)
{pL nw = solve(rd, ru, ld, lu); return pL(nw.second, nw.first);}
x = lu / ld;
pL nw = solve(lu - ld * x, ld, ru - rd * x, rd);
nw.first += nw.second * x;
return nw;
}
int main()
{
while (scanf("%d 0.%lld", &n, &r) == 2)
{
if (r == 0) {puts("1"); continue;}
LL x = 10; while (n --) x *= 10;
LL lu = r * 10 - 5, ld = x, ru = r * 10 + 5, rd = x;
for( ; lu % 5 == 0 && ld % 5 == 0; lu /= 5, ld /= 5);
for( ; ru % 5 == 0 && rd % 5 == 0; ru /= 5, rd /= 5);
pL ans = solve(lu, ld, ru, rd);
//printf("%lld %lld\n", ans.first, ans.second);
printf("%lld\n", min(ans.second, ld));
}
}
12712:[Violet 2]棒球
最新推荐文章于 2024-09-05 10:13:13 发布