[ABC333G] Nearest Fraction
题意翻译
给定一个小于 $1$ 的正实数 $r$ 和一个正整数 $n$。 要求在满足 $0≤p≤q≤n$ 和 $\gcd(p,q)=1$ 的前提下,找到使 $|r-\frac{q}{p}|$ 最小的二元组 $(p,q)$ 。 如果存在多个这样的二元组 $(p,q)$,输出 $\frac{q}{p}$ 值最小的那个。
数据范围:$1\le n \le 10^{10}$,$r\in (0,1)$ 且最多包含 18 位有效数字。
题目描述
[problemUrl]: https://atcoder.jp/contests/abc333/tasks/abc333_g
$ 1 $ 未満の正実数 $ r $ と正整数 $ N $ が与えられます。
$ 0\leq\ p\leq\ q\leq\ N $ かつ $ \gcd(p,q)=1 $ を満たす整数の組 $ (p,q) $ のうち、$ \left\vert\ r-\dfrac pq\right\vert $ の値を最小にするものを求めてください。
ただし、そのような $ (p,q) $ が複数存在する場合、$ \dfrac pq $ の値が最も小さいものを出力してください。
输入输出格式
输入格式
入力は以下の形式で標準入力から与えられる。
> $ r $ $ N $
输出格式
問題文の条件を満たす $ (p,q) $ について $ p $ と $ q $ をこの順に空白区切りで一行に出力せよ。
输入输出样例
输入样例 #1
0.333
33
输出样例 #1
1 3
输入样例 #2
0.45
5
输出样例 #2
2 5
输入样例 #3
0.314159265358979323
10000
输出样例 #3
71 226
输入样例 #4
0.007735339533561113
7203576162
输出样例 #4
34928144 4515398949
说明
### 制約
- $ 0\lt\ r\lt\ 1 $
- $ r $ は十進法で小数点以下たかだか $ 18 $ 桁の実数として与えられる。
- $ 1\leq\ N\leq\ 10^{10} $
- $ N $ は整数
### Sample Explanation 1
$ \left\vert0.333-\dfrac13\right\vert=\dfrac1{3000} $ です。 $ \left\vert0.333-\dfrac\ pq\right\vert\lt\dfrac1{3000} $ となる $ 0\leq\ p\leq\ q\leq33,\gcd(p,q)=1 $ は存在しないので、`1 3` を出力してください。
### Sample Explanation 2
$ \left\vert0.45-\dfrac12\right\vert=\left\vert0.45-\dfrac25\right\vert=\dfrac1{20} $ です。 $ \left\vert0.45-\dfrac\ pq\right\vert\lt\dfrac1{20} $ となる $ 0\leq\ p\leq\ q\leq5,\gcd(p,q)=1 $ は存在せず、$ \dfrac12\gt\dfrac25 $ が成り立つので、`2 5` を出力してください。
### Sample Explanation 3
$ \left\vert0.314159265358979323-\dfrac{71}{226}\right\vert=\dfrac{3014435336501}{113000000000000000000} $ です。